有没有办法使用同一个对象多次调出对话框?

时间:2017-08-30 12:05:11

标签: java

现在,为了打开一个对话框,我创建了一个新的JDialog对象,然后调用dispose退出对话框。

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

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

2 个答案:

答案 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);