1

私はここにこのコードを持っています、それはものを編集するために別の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
}
4

1 に答える 1

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);
            }
        }
    }
于 2012-10-11T01:38:57.407 に答える