JDialog的方法返回null

时间:2016-01-23 13:58:16

标签: java swing null jdialog

问题:为什么字符串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();

1 个答案:

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