首先,我说英语不对,对不起!
我正在用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传递一个文本,它工作正常,但我不确定我是以正确的方式这样做,我不希望代码在使用时失败。
再次,抱歉我的英语!感谢。
答案 0 :(得分:0)
我认为问题是,一旦你处理()一个对话框它就有资格进行垃圾收集,所以在你能够从对话框中显示的文本字段访问文本之前,垃圾收集就会发生。
我不认为这会是一个问题,但万一你可以重新排序你的代码:
this.setVisible(true);
VentanaConfigurarPrivilegios data = new Vent...(...);
this.dispose();
return data;