我这里有这个代码,它是一个调用另一个jFrame来编辑东西的按钮,这些东西会进入需要用户输入更新的jTable。我想通过放入相同的按钮来自动进行此更新,但是当我调用更新jTable的函数时,没什么好处,因为java机器不等待...
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
}
答案 0 :(得分:2)
对此的答案与所有类似问题(并且有很多)相同:不要使用其他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);
}
}
}