2017-08-30 48 views
0

现在,打开一个对话框,我创建一个新的JDialog对象,然后调用dispose退出对话框。有没有办法使用相同的对象多次调出对话框?

有没有一种方法可以创建一个对话框,稍后使用相同的对象调用相同的对话框?

我想要这样做的原因是,文本字段中的值将保持其值。

+2

您可以使用['setVisible'(https://docs.oracle.com/javase/7/docs/api/java/awt/Dialog.html#setVisible(布尔)),以显示和隐藏它,并且不要处置它。 – khelwood

+0

如果你真的需要处理JDialog,那么你需要在一些Pojos中存储填充GUI的“模型 - 数据”...... –

回答

1
JDialog d = new JDialog(); 
d.setVisible(false); 

您还可以使用this.setVisible(false)对话框里面,所以它不会破坏,是从父类使用。此外,如果它有输入字段,它们不会被清除。 它在windows10任务栏中是不可见的,不了解linux。

0

对于经常显示/隐藏的对话框,我使用单例模式。只要你永远不需要其中的一个以上,例如一个“设置”对话框。创建一个扩展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); 
相关问题