1
問題:爲什麼字符串name
始終爲空?JDialog的方法返回null
這是我在我的課創建對話框Add
:
public void init(){
try {
Add dialog = new Add();
dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
//dialog.add(comp)
dialog.setModal(true) ;
//dialog.setModalityType(dialog.DEFAULT_MODALITY_TYPE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
在這裏,我得到了用戶的價值:
public void actionPerformed(ActionEvent arg0) {
name = textField.getText();
System.out.println(name);
setVisible(false);
}
的方法,從另一個類獲取用戶的價值:
public String Get(){
return name;
}
在這裏我嘗試使用該值,但name
總是null
:
Add l = new Add();
l.init();
String name = l.Get();
你註冊了用戶操作的監聽器嗎?如果是,你是在事件之後還是在事件之前檢查該字符串? – SMA
是的(實際上是一個確定的按鈕),我在事件後檢查字符串 – Streetakos
發佈一個**完整的**最小的例子來重現問題。您的最後一個片段與您的第一個片段相矛盾:第一個片段顯示創建並顯示一個對話框,您創建一個Add實例,然後使其成爲模態,然後可見。而最後一個顯示你創建一個Add,調用它的init()方法。如果init()方法是第一個代碼片段中的方法,那麼您使用Add來創建**另一個** Add。爲什麼? –