JDialog 的方法 returns null

Method of JDialog returns null

问题:为什么字符串 name 总是空值?

这就是我在 class 中创建对话框 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);
 }

从另一个获取用户值的方法class:

public String Get(){
    return name;
}

这里我尝试使用值,但是name总是null:

Add l = new Add();
l.init();
String name = l.Get();

您创建 Add 实例两次时出现问题。去掉init()方法中的Add dialog = new Add();,就可以了。

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();
    }
}