java swing如何使得同一个窗口,不管点击打开多少次,桌面上始终只能出现一个?

比如:我打开部门管理——部门添加,如果我重复操作多次它就会实例化出多个,怎样才能不管打开多少次,始终只能初始化一个界面出来?
我已经找到方法了:给添加部门类声明一个对象(dbt)并使其为null,在该对象被调用处用一个
if (dbt != null) {
} else {
dbt = new DbtAdd();
dbt.setVisible(true);
}

这样界面上就只会存在一个添加部门的界面了。

楼主设置了dbt != null 当你打开一个添加部门,然后关闭了对应的窗口,再点添加部门能出来吗追问

额,真的打不开了?晕死。

追答

之前我也遇到过这样的问题,你可以在打开的窗口中添加一个windowlistener监听,当发生closing时,设置dbt = null;就行了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-18
这还不容易,你定义一个boolean 变量first=true,点开的时候添加条件if (first==true)
第一次打开之后定义为false,
第2个回答  2013-12-18
你在打开下一个界面的时候写上this.setVisible(false);就行了追问

我不是要让父界面隐藏,而是不管执行多少次“添加部门”,电脑上只能出现一个“添加界面窗口”,现在情况是我点5次“添加部门”,他就会出现5个添加”部门窗口“。

第3个回答  2013-12-18
弹出模态窗口
第4个回答  2018-03-12
写个 Factory类,然后里面写上本窗口的单例模式不好吗?
相似回答