Java 如何等到用户关闭框架后才能运行其余的代码?
我这里有这个代码,它是一个按钮,调用另一个jFrame来编辑东西,这些东西进入一个jTable,需要用户输入来更新。我想通过输入相同的按钮来自动进行更新,但是当我调用更新jTable的函数时,没有任何结果,可能是因为java机器不等待Java 如何等到用户关闭框架后才能运行其余的代码?,java,frame,wait,Java,Frame,Wait,我这里有这个代码,它是一个按钮,调用另一个jFrame来编辑东西,这些东西进入一个jTable,需要用户输入来更新。我想通过输入相同的按钮来自动进行更新,但是当我调用更新jTable的函数时,没有任何结果,可能是因为java机器不等待 private void editarImovelActionPerformed(java.awt.event.ActionEvent evt) // Button {
private void editarImovelActionPerformed(java.awt.event.ActionEvent evt) // Button {
int i = 0;
int linha = tabelaImoveis.getSelectedRow(); // tabelaImoveis = jTable
if (tabelaImoveis.isRowSelected(linha)) {
{
try {
Integer codigo = Integer.parseInt(tabelaImoveis.getValueAt(linha, 0).toString());
} catch (Exception e) {
mensagem.message("Linha sem Valor!");
i = 1;
} finally {
if (i == 0) {
Integer codigo = Integer.parseInt(tabelaImoveis.getValueAt(linha, 0).toString());
for (Imovel imovel : imovelLista) {
if (imovel.getCodigo() == codigo) { frmAlterar alterar = new frmAlterar();
alterar.setLocationRelativeTo(null);
alterar.setVisible(true);
alterar.setDefaultCloseOperation(alterar.DISPOSE_ON_CLOSE);
alterar.setarAtributos(imovel);
}
}
}
}
}
} else {
mensagem.message("Select Something!"); // Same as System.out...
}
updatejTable(); // This code here I want to execute after the frame "alterar" closes
}
这个问题的答案与所有类似问题的答案相同(有很多):不要使用另一个JFrame,使用模态JDialog
if (i == 0) {
Integer codigo = Integer.parseInt(tabelaImoveis.getValueAt(linha, 0).toString());
for (Imovel imovel : imovelLista) {
if (imovel.getCodigo() == codigo) {
frmAlterar alterar = new frmAlterar(); // *** this should be a modal JDialog
alterar.setLocationRelativeTo(null);
// alterar.setVisible(true);
// alterar.setDefaultCloseOperation(alterar.DISPOSE_ON_CLOSE);
alterar.setarAtributos(imovel);
alterar.setVisible(true);
}
}
}
有关更多信息,请跳到