Java,JDialog:dispose()之后的返回值

时间:2013-10-28 15:23:31

标签: java swing

首先,我说英语不对,对不起!

我正在用Java创建一个库存系统,它正在运行,但我对JDialog实例中dispose()的正确使用存有疑问。

我的代码:

public Usuario getUsuario() {
    this.setVisible(true);
    this.dispose();
    return new VentanaConfigurarPrivilegios(new Usuario(textField.getText(), new String(passwordField.getPassword()))).getUsuario();
}

此函数有效,并从Usuario调用VentanaConfigurarPrivilegios的新实例返回一个新的getUsuario(),但怀疑是关于最后两行,我正在处理JDialog,然后,从textFields传递一个文本,它工作正常,但我不确定我是以正确的方式这样做,我不希望代码在使用时失败。

再次,抱歉我的英语!感谢。

1 个答案:

答案 0 :(得分:0)

我认为问题是,一旦你处理()一个对话框它就有资格进行垃圾收集,所以在你能够从对话框中显示的文本字段访问文本之前,垃圾收集就会发生。

我不认为这会是一个问题,但万一你可以重新排序你的代码:

this.setVisible(true);
VentanaConfigurarPrivilegios data = new Vent...(...);
this.dispose();
return data;