java - 如何在打开新框架时关闭上一个框架

标签 java swing model-view-controller jframe

我正在编写 MVC 代码。在我的 Controller 中,我正在监听该操作,如果用户单击“显示列表”按钮,我将创建一个从 JFrame 扩展的 View 类实例,并在 View 类中创建一个新的 JFrame。我的问题是,如果我多次单击“显示列表”按钮,我会多次打开框架。有人可以告诉我该怎么做,以便一旦新框架即将打开旧框架就会关闭..

Controller

public void actionPerformed(ActionEvent event) {
  String viewAction = event.getActionCommand();
  ...
    if (viewAction.equals("SHOW-LIST")) {
      showListUI = new ShowListDialogUI(displayedCustomerList);
    }
}

查看

class ShowListDialogUI extends JFrame{
  public ShowListDialogUI (List<Customer> customerList) {
    ..
    // I am drawing it here
    ..
  }
}

最佳答案

Can somebody please tell me how can i do so so that once a new frame is about to open the old frame closes..

  • 使用CardLayout,那么就没有理由使用顶级容器,在那里放置所需数量的JPanels,然后只需在 JPanel View 之间切换

  • 按照@trashgod通知,确实不是个好主意,方式

  • 否则必须清理(删除所有内容)无用的容器,because Top-Level Containers never will be GC'ed

关于java - 如何在打开新框架时关闭上一个框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13072575/

相关文章:

java - 创建名称为 'userController' : Unsatisfied dependency expressed through field 'userService 的 bean 时出错

java - 如何将文件从一个位置复制到另一个位置?

java - 如何在从 Servlet 转发时将 JSP 片段包含到 JSP 页面中?

java - 如何将 ImageIcon 设置为 JLabel 数组?

model-view-controller - Entity Framework 4 上下文?

model-view-controller - 用scala功能风格包装spring mvc会很容易吗?

java - 创建关闭回显的命令行

java - SqlExceptionHelper : Cursors are not supported on a table which has a clustered columnstore index

java - 为什么我的 JTextField 没有被填充

java - 如何在 Quaqua 中获得统一的工具栏?