我正在尝试使JFrame在打开后10秒后关闭。
我知道您可以使用setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
,但是您需要手动单击以关闭框架。
如果您可以帮助我一些代码行。
谢谢!
答案 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程序员很熟悉,可以与 事件调度线程要简单一些。二,其自动线程 分享意味着您无需采取特殊步骤来避免 产生太多线程。相反,您的计时器使用同一线程 用来使光标闪烁,出现工具提示等。