java标识是否已打开JDialog
如何识别JDialog组件是否已经打开,从而避免在同一个应用程序实例中打开同一个JDialog两次
我想到的一个解决方案是验证一个对象是否已经是JDialog实例(dialogObj instanceof JDialog),如果是,我只调用负责其构造/展示的方法,如果不是,我只创建一个新的JDialog实例(如果我有错觉,请免费填写以纠正我)
假设我创建了一个JDialog,其中包含一(1)个JPanel、一(1)个JTextField、一(1)个JButton和一个JMenuItem->;jpopmpmenu->;TrayIcon(系统托盘图标)
我几乎找到了一种解决方法(如第二段所示),但是,当我通过系统托盘再次打开它时,我在“处理”对话框之前键入的所有内容都会再次出现,更不用说其他元素的状态保持不变(JButton enabled等,这是另一回事)
这里有没有人知道如何解决这个问题(当然有)
# 1 楼答案
作为一个变体,这里只是另一个基本概念(未经测试)
//在你的基础应用程序中的某个地方
所以它也可以被使用
祝你好运
# 2 楼答案
如果您有权访问JDialog实例,那么只需调用isVisible()。如果它是显示,这将是真实的
# 3 楼答案
将这两项任务作为
您只需将模态JDialog用作
。。。这将不允许用户初始化另一个JDialog示例:)
祝你好运