10秒后如何关闭JFrame?

时间:2020-06-23 16:51:56

标签: java swing jframe

我正在尝试使JFrame在打开后10秒后关闭。

我知道您可以使用setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE),但是您需要手动单击以关闭框架。

如果您可以帮助我一些代码行。

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用javax.swing.Timer

Timer timer = new Timer(10000, new ActionListener(){
    public void actionPerformed(ActionEvent evt) {
        jFrame.dispose();
    }
});
timer.setRepeats(false);
timer.start();

答案 1 :(得分:2)

您可以像这样使用javax.swing.Timer:

new Timer(10_000, (e) -> { frame.setVisible(false); frame.dispose(); }).start();

使用javax.swing.Timer选项的优点是它不违反Swing线程规则。

正如Javadocs所说:

javax.swing.Timer具有两个功能,可以使它有点 易于使用GUI。首先,它的事件处理隐喻是 GUI程序员很熟悉,可以与 事件调度线程要简单一些。二,其自动线程 分享意味着您无需采取特殊步骤来避免 产生太多线程。相反,您的计时器使用同一线程 用来使光标闪烁,出现工具提示等。

相关问题