我尝试向swing应用程序添加一个印记时遇到了一个问题,该应用程序在应用程序关闭时会显示五秒钟。
我打算在主框架关闭时打开一个只包含简单图像的JDialog。
我有一个显示JDialog的函数(我删除了所有不必要的东西)。
public static void show() {
JDialog d = new JDialog();
JLabel l = new JLabel(new ImageIcon(MainController.class.getClass().getResource("/path/to/endlogo.png")));
d.add(l);
d.setVisible(true);
}
该函数由以下代码段调用(在我的主窗口的窗口监听器中)
@Override
public void windowClosing(WindowEvent e) {
show();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
问题是对话框显示在五秒钟之后(当窗口已经关闭并且应用程序退出时,我测试了它,并且在应用程序启动时运行五秒后它显示完美)。
你们是否知道如何以相反的方式实现它?
答案 0 :(得分:1)
您正在阻止UI线程。不要这样做,基本上......如果你想在以后的UI线程上做某事,可以使用swing计时器或类似的东西。
黄金法则: