Salve a tutti, credo di avere un problema di sincronizzazione dei thread. Mi spiego meglio, sono anche io alle prese col progetto del monopoli (purtroppo per 4 miseri punti d'esame va fatto...).

Ho sviluppato la logica di gioco che si interfaccia con l'utente mediante una Interface da implementare in diverse classi in modo tale da creare sia un'interfaccia testuale che una bella GUI...

Veniamo al dunque: ipotizzando di avere un pezzo di codice che esegue il lancio dei dadi e lo comunica all'intefaccia lanciando il metodo "public void interfaccia.lancioDadi(int value);"
...ovvero in questa situazione...

codice:
class Game... {

	/* omissis */

	public int lancioDadi(){
		/* omissis */
		int risultato = (int)Math.random(...);
		interfaccia.lancioDadi(risultato);
		/* omissis */
	}
}

class Grafica() implements Interfaccia{

	/* omissis */

	public void lancioDadi(int value){
		/*
		 * CODICE X LA GENERAZIONE DEL JFrame 
		 * Con un bel JButton("OK")
		 */
	}
}
Come faccio a far sì che il metodo della classe Grafica() non termini prima che venga invocato l'EventListener del JButton?

Fin ora ho trovato solo la soluzione del wait()+notify() ma non è molto elegante:

codice:
public class DrawElements ... {

	/* omissis */

	private synchronized void drawLancioDadi(int risultato){
		/* omissis */
		JPanel pnlOkButton = new JPanel(new GridBagLayout());
		JButton cmdOkButton = new JButton("Ok");
		pnlOkButton.add(cmdOkButton);
		frameLancio.getContentPane().add(BorderLayout.SOUTH, pnlOkButton);
       		ActionListener aEvent = new ActionListener() {
       			public void actionPerformed(ActionEvent e){
       				DrawElements.this.callNotify();
       			}
       		};
       		cmdOkButton.addActionListener(aEvent);
       		frameLancio.setVisible(true);
       		try{
       			wait();
       		}catch(InterruptedException ei){}
       		cmdOkButton.removeActionListener(aEvent);
		/* omissis */
	}

	private synchronized void callNotify() {
		notify();
	}
}
Idee?
In sintesi il programma deve andare in attesa finché non viene premuto un bottone. Come faccio?