【发布时间】:2019-07-03 12:34:05
【问题描述】:
我必须设置两个对话框,我想停止第一个,然后启动第二个。谁能帮我解决一下
JOptionPane msg = new JOptionPane("your score is: " + getScore(), JOptionPane.INFORMATION_MESSAGE);
final JDialog dlg = msg.createDialog("Game Over");
dlg.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
dlg.dispose();
}
}).start();
dlg.setVisible(true);
第二个对话框和
一样JOptionPane message = new JOptionPane("Highscore: " + getHighscore(), JOptionPane.INFORMATION_MESSAGE);
final JDialog dialog = message.createDialog("Game Over");
dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
现在我想在第一个对话框关闭后启动这个对话框。
【问题讨论】:
-
1.为了 Swing 线程安全,使用 Swing Timer 而不是直接使用后台线程。 2. 让它成为一个不重复的计时器。 3. 在计时器内,关闭/处理当前对话框并打开第二个。
标签: java multithreading swing joptionpane