[英]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.