Java 从NetBeans中的单独类关闭JFrame(但不是整个程序)的Dispose方法不起作用。为什么?
我在这里有三个班。第一个是管理页面,用户可以通过下拉框选择在系统上添加、更新或删除员工。当用户从组合框中选择三个选项中的一个时,JFrame(employees)会显示执行任务所需的字段,并且管理框仍会显示在其后面。在这个框架上有一个“取消”按钮。当他们单击“取消”按钮时,只有此框架必须关闭,但管理框架仍保持打开状态。该按钮是从一个单独的类(empClass)生成的,该类将显示在employee框架上。我现在的问题是,我正在努力让按钮来处理员工框架,但在几种尝试方法中,它无法工作。一种方法在每次运行应用程序时都会产生错误,另一种方法在我尝试选择要在员工框架上执行的选项时导致应用程序崩溃/冻结,而我当前实现的代码根本不执行任何操作。我认为这是一个与表单沟通的问题,但我不能完全确定。请帮助我,因为我已经为此奋斗了几个小时,而互联网却完全没有提供任何有用的东西。大多数参考资料都引用了Java 从NetBeans中的单独类关闭JFrame(但不是整个程序)的Dispose方法不起作用。为什么?,java,netbeans,Java,Netbeans,我在这里有三个班。第一个是管理页面,用户可以通过下拉框选择在系统上添加、更新或删除员工。当用户从组合框中选择三个选项中的一个时,JFrame(employees)会显示执行任务所需的字段,并且管理框仍会显示在其后面。在这个框架上有一个“取消”按钮。当他们单击“取消”按钮时,只有此框架必须关闭,但管理框架仍保持打开状态。该按钮是从一个单独的类(empClass)生成的,该类将显示在employee框架上。我现在的问题是,我正在努力让按钮来处理员工框架,但在几种尝试方法中,它无法工作。一种方法在每次
dispose()
方法,我以各种方式尝试了该方法,但我尝试的所有方法都不起作用,导致应用程序崩溃或出现错误。在这里,即使是其他类似的问题对我也没有任何帮助
我试着从employee框架中调用按钮,尝试将函数链接到“Cancel”按钮。以下是我在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);
}
首先,只使用一个JFrame,对您可能希望看到的底层其他窗口使用JDialogs。在JDialog上,使用
setDefaultCloseOperation(JDialog.DISPOSE\u On\u CLOSE)
首先,只使用一个JFrame,对您可能希望看到的底层其他窗口使用JDialogs。在JDialog上,使用setDefaultCloseOperation(JDialog.DISPOSE\u On\u CLOSE)
首先,只使用一个JFrame,对您可能希望看到的底层其他窗口使用JDialogs。在JDialog上,使用setDefaultCloseOperation(JDialog.DISPOSE\u On\u CLOSE)
首先,只使用一个JFrame,对您可能希望看到的底层其他窗口使用JDialogs。在JDialog上,使用setDefaultCloseOperation(JDialog.DISPOSE\u On\u CLOSE)
另一种方法是使用setVisible(false)
隐藏帧另一种方法是使用setVisible(false)
隐藏帧另一种方法是使用setVisible(false)隐藏帧
另一种方法是使用setVisible(false)
隐藏帧,因为您没有提供JFrame
的代码,所以我猜问题出在JFrame
的代码中。您可能正在为employee类设置setDefaultCloseOperation(JFrame.EXIT\u ON\u CLOSE)
,因为它是静态属性,所以将关闭所有JFrames。您应该将其设置为setDefaultCloseOperation(employees.DISPOSE\u ON\u CLOSE)
或setDefaultCloseOperation(employees.HIDE\u ON\u CLOSE)
然后在触发事件时可以调用
empp.DISPOSE()
或setVisible(flase)
因为您没有提供JFrame的代码,所以我猜问题出在JFrame的代码中。您可能正在为employee类设置setDefaultCloseOperation(JFrame.EXIT\u ON\u CLOSE)
,因为它是静态属性,所以将关闭所有JFrames。您应该将其设置为setDefaultCloseOperation(employees.DISPOSE\u ON\u CLOSE)
或setDefaultCloseOperation(employees.HIDE\u ON\u CLOSE)
然后在触发事件时可以调用empp.DISPOSE()
或setVisible(flase)
因为您没有提供JFrame的代码,所以我猜问题出在JFrame的代码中。您可能正在为employee类设置setDefaultCloseOperation(JFrame.EXIT\u ON\u CLOSE)
,因为它是静态属性,所以将关闭所有JFrames。您应该将其设置为setDefaultCloseOperation(employees.DISPOSE\u ON\u CLOSE)
或setDefaultCloseOperation(employees.HIDE\u ON\u CLOSE)
然后在触发事件时可以调用empp.DISPOSE()
或setVisible(flase)
因为您没有提供JFrame的代码,所以我猜问题出在JFrame的代码中。您可能正在为employee类设置setDefaultCloseOperation(JFrame.EXIT\u ON\u CLOSE)
,因为它是静态属性,所以将关闭所有JFrames。您应该将其设置为setDefaultCloseOperation(employees.DISPOSE\u ON\u CLOSE)
或setDefaultCloseOperation(employees.HIDE\u ON\u CLOSE)
然后在触发事件时可以调用empp.DISPOSE()
或setVisible(flase)
您是否添加了setDefaultCloseOperation(employees.DISPOSE\u ON\u CLOSE)
?或者尝试setVisible(flase)
然后您应该通过创建employees对象来设置jframe的所有属性,然后通过disposeof
方法传递此employees对象,然后调用dispose()
通过传递对象或通过关键字处置它此
我无法理解此部分empClass ec=new empClass();adminPage ap=新建adminPage()代码>。什么是empClass
和adminPage
。JFrame
没有问题,问题在于OOP实现中。adminPage
是一个摆动框架,用户可以在其中访问employees框架<