gpt4 book ai didi

java - 定时 JDialog 在指定时间后未关闭

转载 作者:行者123 更新时间:2023-12-02 03:35:46 26 4
gpt4 key购买 nike

我正在寻找定时 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();

我不明白为什么会发生这种情况。请,如果有人解释原因,将会有很大帮助。

提前致谢。

最佳答案

因为在第二个程序中,当对话框处于模态状态时,dialog.setVisible(true); 的调用会被阻塞,即执行会在此停止,直到您关闭对话框。因此,在您手动关闭对话框之前,计时器不会启动。第一个程序就是解决方案。为什么要做第二个?

关于java - 定时 JDialog 在指定时间后未关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37453638/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com