现在,打开一个对话框,我创建一个新的JDialog
对象,然后调用dispose
退出对话框。有没有办法使用相同的对象多次调出对话框?
有没有一种方法可以创建一个对话框,稍后使用相同的对象调用相同的对话框?
我想要这样做的原因是,文本字段中的值将保持其值。
现在,打开一个对话框,我创建一个新的JDialog
对象,然后调用dispose
退出对话框。有没有办法使用相同的对象多次调出对话框?
有没有一种方法可以创建一个对话框,稍后使用相同的对象调用相同的对话框?
我想要这样做的原因是,文本字段中的值将保持其值。
JDialog d = new JDialog();
d.setVisible(false);
您还可以使用this.setVisible(false)
对话框里面,所以它不会破坏,是从父类使用。此外,如果它有输入字段,它们不会被清除。 它在windows10任务栏中是不可见的,不了解linux。
对于经常显示/隐藏的对话框,我使用单例模式。只要你永远不需要其中的一个以上,例如一个“设置”对话框。创建一个扩展JDialog的类,使用singleton pattern。
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);
您可以使用['setVisible'(https://docs.oracle.com/javase/7/docs/api/java/awt/Dialog.html#setVisible(布尔)),以显示和隐藏它,并且不要处置它。 – khelwood
如果你真的需要处理JDialog,那么你需要在一些Pojos中存储填充GUI的“模型 - 数据”...... –