簡體   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