现在,要提出一个对话框,我创建一个新的JDialog
对象,然后致电dispose
退出对话框。
有没有一种方法可以创建一个对话框,并稍后使用同一对象调用相同的对话框?
我想这样做的原因是,文本字段中的值将保持其值。
JDialog d = new JDialog();
d.setVisible(false);
您也可以在对话框内使用this.setVisible(false)
,因此不会被破坏,并且可以从父类中使用。另外,如果它具有输入字段,则不会清除。它在Windows10任务栏中是看不见的,对Linux不了解。
对于将经常显示/隐藏的对话框,我使用singleton模式。只要您永远不需要其中一个,例如"设置"对话框。制作一个使用单例图案扩展JDialog的类。
public class SettingsDialog extends JDialog {
private static SettingsDialog instance = null;
public static SettingsDialog getInstance() {
if (instance == null) {
instance = new SettingsDialog();
}
return instance;
}
private SettingsDialog() {
super();
}
}
然后,当您要显示对话框(从按钮或菜单项操作侦听器)时,请使用其他方法。
SettingsDialog.getInstance().setVisible(true);