繁体   English   中英

将Java GUI对象传递给类后,它变为null

[英]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;
}
}

staffListManagerMenu的构造函数中为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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM