有没有一种方法可以使用同一对象多次启动对话框



现在,要提出一个对话框,我创建一个新的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);

最新更新