现在,为了打开一个对话框,我创建了一个新的JDialog
对象,然后调用dispose
退出对话框。
有没有办法可以创建一个对话框,稍后使用相同的对象调用同一个对话框?
我想这样做的原因是文本字段中的值将保留其值。
答案 0 :(得分:1)
JDialog d = new JDialog();
d.setVisible(false);
您也可以在对话框中使用this.setVisible(false)
,因此它不会被破坏并且可以从父类中使用。如果它有输入字段,它们也不会被清除。
它在windows10任务栏中是不可见的,不了解linux。
答案 1 :(得分:0)
对于经常显示/隐藏的对话框,我使用单例模式。只要你永远不需要其中一个,比如"设置"对话例如。创建一个使用singleton pattern扩展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();
}
}
然后当你想要显示你的对话框(来自按钮或菜单项动作监听器)时,正如其他人提到的那样使用setVisible方法。
SettingsDialog.getInstance().setVisible(true);