从NetBeans中的单独类关闭JFrame(但不是整个程序)的Dispose方法不起作用。为什么?

时间:2015-07-07 15:47:31

标签: java netbeans

我在这里有三个班级。第一个是管理页面,用户可以通过下拉框选择在系统上添加,更新或删除员工。当用户从组合框中选择三个选项之一时,JFrame(员工)会提供必要的字段来执行他们的任务,管理框架仍将显示在其后面。在此框架上有一个“取消”按钮。当他们单击取消按钮时,此框架必须关闭,但仍保持管理框架打开。该按钮是从单独的类(empClass)生成的,以显示在员工框架上。我现在的问题是我正在努力获得处理员工框架的按钮,但是在尝试这种方法的几种方法中,它无法工作。每次运行应用程序时,一种方法产生错误,另一种方法导致应用程序崩溃/冻结,每当我尝试选择一个选项来执行员工框架时,我当前实现的代码根本不执行任何操作。我认为问题是与表格沟通的问题,但我不完全确定。请帮助,因为我一直在努力这几个小时,互联网提供绝对没有用。大多数资源都是以我用各种方式尝试过的dispose()方法,但我尝试过的所有方法都不起作用,导致应用程序崩溃或导致错误发生。即使是其他类似的问题也没有帮助我。

我尝试从员工框架调用按钮尝试将该功能链接到“取消”按钮。这是我在empClass中实现的代码:

public void disposeof()
    {

        employees empp = new employees();
        empp.dispose();
    }

private void cancelActionPerformed(java.awt.event.ActionEvent evt)
    {
        disposeof();
    }

以下是员工编码:

public class employees extends javax.swing.JFrame {

    empClass ec = new empClass();
    adminPage ap = new adminPage();

    public employees() {
        initComponents();
      getContentPane().add(ec.getpanel());
       this.add(ec.getpanel());
       this.add(ec.lbltitle);
       this.add(ec.cancel);
       this.add(ec.bfunction);
       this.add(ec.empList); 
    }

3 个答案:

答案 0 :(得分:2)

由于您没有提供JFrame的代码,所以我猜问题出现在JFrame的代码中。您可能正在为您的员工类设置setDefaultCloseOperation(JFrame .EXIT_ON_CLOSE),因为它是静态属性,因此它将关闭所有JFrame。您应该设置setDefaultCloseOperation(employees.DISPOSE_ON_CLOSE)setDefaultCloseOperation(employees.HIDE_ON_CLOSE)
然后在触发活动时,您可以拨打empp.dispose();setVisible(flase)

答案 1 :(得分:1)

首先,只使用一个JFrame并将JDialog用于您可能希望看到的基础其他窗口。在JDialog上,使用setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE)

答案 2 :(得分:0)

另一种方法是使用import隐藏框架。