Ciao a tutti
sto cercando creare una msgBox che visualizzi un timer ma ancora non funziona, non capisco dove sbaglio, qualcuno mi puoi aiutare?
vi posto di seguito i codice:

1) ho creato una classe MsgBox

codice:

public class MsgBox extends JDialog {

	public MsgBox() {
	}

	public static void timedMessageBox(Component parentComponent,
			Object message, String title, int messageType, long time) {
		JOptionPane optionPane = new JOptionPane(message, messageType);
		final JDialog dialog = optionPane.createDialog(parentComponent, title);
                dialog.setVisible(true);
	}

}
2) in un altra classe, quella principale, instanzio un oggetto della classe MsgBox e dō il suo metodo repaint in pasto ad un therad in questo modo

//classe principale
//...
/...
public MsgBox msgBox=new MsgBox();

codice:
msgBox.timedMessageBox(null, "This box will close automatically after seconds " + currentTimeMsgBoxCheck, "Timed message box", JOptionPane.INFORMATION_MESSAGE, currentTimeMsgBoxCheck);
checkTimeMsgBoxThread();//chiamo il thread per fare il repaint su msgBox e aggiornare currentTimeMsgBoxCheck
dove la var: "currentTimeMsgBoxCheck" non č altro che un long che viene valorizzato all'interno di un thread separato

codice:
public void checkTimeMsgBoxThread() {
		parallelCheckTimeMsgBoxThread toRun = new parallelCheckTimeMsgBoxThread();
		Thread startCheckMsgBoxConnection = new Thread(toRun);
		startCheckMsgBoxConnection.start();
	}
	
	public class parallelCheckTimeMsgBoxThread implements Runnable{
		public void run() {
			try {
				while(true) {
					Thread.sleep(1);
					currentTimeMsgBoxCheck=System.currentTimeMillis()
					msgBox.repaint();
				}
				
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			
		}
		
	}
praticamente la msgBox continua a riaprirsi e ad aggiornare la var "currentTimeMsgBoxCheck" tutte le vote che clicco sul tasto "Ok".
Io invece vorrei che si aprisse una volta sola e mi facesse vedere il tempo che passa.
Dove sbaglio?