如何避免多个帧?

时间:2012-08-18 07:21:59

标签: java swing jframe desktop-application

我正在创建一个Java桌面应用程序。在这个应用程序中,我有一个表。如果用户双击表格的行,则在另一个窗口中查看相应的数据[frame - >查看框架]。用户最小化视图框并选择表中的另一行。它再次在一个新窗口[框架]中打开。

如何避免多帧?我一次只想要一个视图帧。假设用户想要查看新数据,则旧视图框将退出,新视图框将打开。

2 个答案:

答案 0 :(得分:3)

使框架成为实例变量。每当您必须显示一个新帧时,检查它是否已经显示,如果已经显示,请先关闭现有帧,然后再显示新帧。

答案 1 :(得分:1)

通常情况下,最好是在应用程序中只有一个JFrame,而所有其他窗口都是JDialog

  • 您是否考虑过制作第二个窗口模式?

  • 另一种选择是有一个标志,告诉你第二个窗口是否打开。如果是,那么当用户双击表格中的另一行时,您只需替换内容(而不是创建新窗口)。

您可以在WindowListenerwindowClosed方法中设置该标记。然后,您将WindowListener添加到第二个窗口。

  • 您可以通过调用Window#isShowing查看是否已打开Window。这适用于JFrameJDialog s。