0

首先,我不会说正确的英语,对此感到抱歉!

我正在用 Java 制作一个股票系统,它正在工作,但我对dispose()JDialog 实例的正确使用有疑问。

我的代码:

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

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

再次,对不起我的英语!!谢谢。

4

1 回答 1

0

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

我认为这不是问题,但以防万一您可以重新排序代码:

this.setVisible(true);
VentanaConfigurarPrivilegios data = new Vent...(...);
this.dispose();
return data;
于 2013-10-28T15:35:58.967 回答