如何检查JFrame是否存在?

时间:2016-06-25 19:58:44

标签: java jframe

我正在创建一个应用程序,我需要一个Preferences JFrame,它可以打开另一个JFrame以获得某种类型的更多首选项。虽然我不希望进一步的首选项JFrame能够同时打开多个实例。

我尝试过使用.isActive()方法,但无论发生什么事情都会报告用于创建JFrame新实例的变量等于null,它最初设置为当它被初始化时。

那么实际检查某个JFrame是否已存在实例的最佳方法是什么?它是否在启动时和退出时写入变量?如果是这样,当有人按下x按钮时,你怎么能把它写入变量?如果它没有通过标准方法崩溃和关闭怎么办?

或者是否有另一种方法可以让isActive()方法工作或其他方法更好?

2 个答案:

答案 0 :(得分:2)

应该做的是使JFrame成为模态JDialog。您可以打开JDialog,而不是打开JFrame。您将其他设置窗口作为parent传递,并将true传递给modal。只要此模式对话框打开,这将阻止其他设置窗口中的任何操作。

多数/几乎每个程序都使用了什么。您是否注意到,当您打开设置窗口并尝试单击主窗口时,设置窗口会弹回顶部并闪烁一秒钟?这就是模态对话框的作用。

答案 1 :(得分:0)

为什么不完全避免创建新的JFrame?只需在执行中提前制作一个,并在需要时将其显示出来,并在暂时不再需要时将其隐藏起来。尝试使已经可见的JFrame可见或隐藏隐藏的JFrame不应该做任何事情。