[英]Java GUI object becomes null after passing it to a class
我试图在两个GUI类之间传递类型为Warehouse的对象,由于某种原因,传递它后它变为null。 它被垃圾收集了吗? 如果是这样,我该如何停止呢?
这是第一类,实例化仓库对象,并用虚拟数据填充它,并在我试图将数据发送到的按钮提示上打开一个新的Jframe。
public class StaffLeaveMainMenu extends javax.swing.JFrame {
private Warehouse staffList = new Warehouse();
/**
* Creates new form StaffLeaveMainMenu
*/
public StaffLeaveMainMenu() {
staffList.createTestData();
System.out.print(staffList);
initComponents();
}
private void jButtonManagerActionPerformed(java.awt.event.ActionEvent evt) {
ManagerMenu newFrame = new ManagerMenu();
newFrame.setWarehouse(staffList);
newFrame.setVisible(true);
}
}
然后,这是要发送给的类:
public class ManagerMenu extends javax.swing.JFrame {
private Warehouse staffList;
/**
* Creates new form ManagerMenu
*/
public ManagerMenu() {
listModel = new DefaultListModel();
System.out.print(staffList);
refreshListModel();
initComponents();
}
public void setWarehouse(Warehouse objTarget) {
staffList = objTarget;
}
}
staffList
在ManagerMenu
的构造函数中为null,因为您在调用构造函数后将其传递。
要解决它,您必须在构造函数本身而不是在setter中传递它。
public ManagerMenu(Warehouse objTarget) {
staffList = objTarget;
listModel = new DefaultListModel();
System.out.print(staffList);
refreshListModel();
initComponents();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.