我正在创建一个Java桌面应用程序。在这个应用程序中,我有一个表。如果用户双击表格的行,则在另一个窗口中查看相应的数据[frame - >查看框架]。用户最小化视图框并选择表中的另一行。它再次在一个新窗口[框架]中打开。
如何避免多帧?我一次只想要一个视图帧。假设用户想要查看新数据,则旧视图框将退出,新视图框将打开。
答案 0 :(得分:3)
使框架成为实例变量。每当您必须显示一个新帧时,检查它是否已经显示,如果已经显示,请先关闭现有帧,然后再显示新帧。
答案 1 :(得分:1)
通常情况下,最好是在应用程序中只有一个JFrame
,而所有其他窗口都是JDialog
。
您是否考虑过制作第二个窗口模式?
另一种选择是有一个标志,告诉你第二个窗口是否打开。如果是,那么当用户双击表格中的另一行时,您只需替换内容(而不是创建新窗口)。
您可以在WindowListener
的windowClosed
方法中设置该标记。然后,您将WindowListener
添加到第二个窗口。
Window#isShowing
查看是否已打开Window
。这适用于JFrame
和JDialog
s。