Ho provato a fare delle modifiche, senza ottenere nulla, nel senso che non va proprio.

Ho aggiunto questa classe:

codice:
public class Wait {
	
	private boolean userHavePlayed;
	
	public Wait() {
		userHavePlayed = false;
	}
	
	public synchronized void setUserHavePlayed() {
		userHavePlayed = true;
		notifyAll();
	}
	
	public boolean getUserHavePlayed() {
		return userHavePlayed;
	}
	
	public void setFalseUserHavePlayed() {
		userHavePlayed = false;
	}
}
Questo è l'ascoltatore del pulsante:

codice:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class DadoListener implements ActionListener {

	private Wait wait;
	
	public DadoListener(Wait w) {
		wait = w;
	}
	
	@Override
	public void actionPerformed(ActionEvent e) {
		wait.setUserHavePlayed();
	}
}
E questo è la parte del run() importante:

codice:
while (wait.getUserHavePlayed() == false) {
					try {
						wait();
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
				wait.setFalseUserHavePlayed();
Semplicemente alla pressione del bottone non accade nulla, come il run non si sbloccasse dalla wait()..