问题:为什么字符串name
始终为空?
这是我在班级中创建对话框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();
答案 0 :(得分:1)
问题您创建了Add
个实例两次。在Add dialog = new Add();
方法中移除init()
,它会起作用。
public void init (){
try {
this.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE );
//dialog.add(comp)
this.setModal(true) ;
//dialog.setModalityType(dialog.DEFAULT_MODALITY_TYPE);
this.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}