我正在开发一个应用程序。我希望当我退出它时,会出现一个消息框,其中包含消息,例如“感谢您使用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 :
第一个问题是我已经部署了应用程序然后显示消息框。 在父母被杀之后显示消息框是否正常?
出现第二个消息框时,我不想单击“确定”按钮。我希望它应该自动消失。所以我的第二个问题是如何显示一段时间后自动消失的消息框?
答案 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();