我正在搜索时间上的JDialog,在经过指定的时间之后,它将消失,找到的代码正在运行。
JFrame f = new JFrame();
final JDialog dialog = new JDialog(f, "Test", true);
Timer timer = new Timer(2000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
dialog.setVisible(false);
dialog.dispose();
}
});
timer.setRepeats(false);
timer.start();
dialog.setVisible(true);但是,在更改代码(如下所示)之后不起作用,即在经过指定的时间之后,模式不会关闭:
JFrame f = new JFrame();
final JDialog dialog = new JDialog(f, "Test", true);
dialog.setVisible(true);
Timer timer = new Timer(2000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
dialog.setVisible(false);
dialog.dispose();
}
});
timer.setRepeats(false);
timer.start();我不明白为什么会发生这种事。拜托,如果有人解释原因会有很大帮助。
提前谢谢。
发布于 2016-05-26 07:01:13
因为在第二个程序中,当对话框是模态时,dialog.setVisible(true);的调用是阻塞的,也就是说,执行在这里停止,直到您关闭对话框。因此,在手动关闭对话框之前,计时器不会启动。第一个程序是解决方案。为什么要做第二个?
https://stackoverflow.com/questions/37453638
复制相似问题