对话框自动消失

时间:2014-03-03 09:45:26

标签: java swing joptionpane windowlistener

我正在开发一个应用程序。我希望当我退出它时,会出现一个消息框,其中包含消息,例如“感谢您使用Soft Attendance”。然后在几秒钟后自动消失。

我已经为此编写了如下代码:

public void windowClosing(WindowEvent e){
        int whichOption;
        whichOption=JOptionPane.showConfirmDialog(f1,"Are you Serious?","Soft Attendence",JOptionPane.YES_NO_OPTION);
        if(whichOption==JOptionPane.YES_OPTION){
            f1.dispose();
            JOptionPane.showMessageDialog(null,"Thanks for using Soft Attendence");
        }
    }

当我单击退出按钮时,会出现一个确认对话框,然后单击是按钮 退出应用程序并出现另一个消息框。

Now I have two questions in my mind :

第一个问题是我已经部署了应用程序然后显示消息框。 在父母被杀之后显示消息框是否正常?

出现第二个消息框时,我不想单击“确定”按钮。我希望它应该自动消失。所以我的第二个问题是如何显示一段时间后自动消失的消息框?

1 个答案:

答案 0 :(得分:1)

Is it fine to show message box after its parent is killed? 

我认为这不是一个理想的案例。但是如果parentComponent没有Frame JOptionPane.showConfirmDialog(null,"...");

,则可以打开对话框
How to shown message box that disappear automatically after some time?

自动一次性你可以通过技巧获得它,你可以创建一个SwingWorker,它通常在后台线程中执行GUI交互任务。设置一个计时器,该计时器将在一段时间后执行并明确关闭对话框。

class AutoDisposer extends SwingWorker<Boolean, Object> {
   @Override
   public String doInBackground() {
       try{
           JOptionPane.getRootFrame().dispose();
           return Boolean.True;
       }catch(Exception ex){...}
       return Boolean.False;
   }
}

...

new Timer(seconds * 1000, autoDisposer).start();