Erro com getRowCount() em jTextField

Boa tarde!

Gostaria de exibir o número de registros de minha jTable em um jTextField. Estou usando o seguinte código:

int soma = tbTitular.getRowCount(); tfTotalTitular.setText(Integer.toString(soma));

Só que desta forma, o resultado em meu jTextField é sempre 0. O que está errado em meu código?

Agradeço pela ajuda!

Esse código foi colocado após você alterar o model da tabela, certo?

Sim!

Como faço para corrigir?

Obrigado!!!

Posta o código todo. Assim está bem difícil de ver onde está o problema.

Isso aí devia estar funcionando. Se o código for muito longo, não poste direto no corpo do post, e sim, use a opção de attachments.

hehehehe. Vou postar mas você vai me xingar. Estou usando DefaultTableModel :oops:

Bom… você seta o seu JTextField no initComponents(). O initComponents() roda antes do método mostraListagem(). Portanto, durante o initComponents() quantas linhas tem a tabela? 0.

Lembra que eu te perguntei:

Se você quer corrigir, coloque aquelas duas linhas no método mostrarPesquisa:

[code] private void mostraPesquisa(List titular) {
while (tmTitular.getRowCount() > 0) {
tmTitular.removeRow(0);
}
if (titular.size() == 0) {
JOptionPane.showMessageDialog(null, “Funcionário não encontrado”);
} else {
String[] linha = new String[]{null, null, null, null, null, null};
for (int i = 0; i < titular.size(); i++) {
tmTitular.addRow(linha);
tmTitular.setValueAt(titular.get(i).getDataCadastro(), i, 0);
tmTitular.setValueAt(titular.get(i).getNome(), i, 1);
tmTitular.setValueAt(titular.get(i).getLoja(), i, 2);
tmTitular.setValueAt(titular.get(i).getSituacao(), i, 3);
tmTitular.setValueAt(titular.get(i).getNumeroCartao(), i, 4);
}
}

    //Após preencher a tabela, mostra a quantidade de linhas.
    int linhas = tbTitular.getRowCount();
    tfTotalTitular.setText(Integer.toString(soma));
}

[/code]

Agora, vamos a questão do DefaultTableModel. Por que você ainda não criou um TitularTableModel e um DependenteTableModel? O código ficaria bem mais simples do que o que está aí. Por exemplo, esse mesmo método acima ficaria assim:

private void mostraPesquisa(List<Titular> titular) {
   modelTitular.set(titular);

   //Após preencher a tabela, mostra a quantidade de linhas.
   int linhas = tbTitular.getRowCount();
   tfTotalTitular.setText(Integer.toString(soma));

   if (titular.size() == 0) {
      JOptionPane.showMessageDialog(null, "Funcionário não encontrado");
   }
}

Você tem certeza que quer continuar a trabalhar com o Default? Pense bem, pois é o caminho mais difícil.

Bom dia!

Cara, deu certo. Valeu mesmo.

Próxima missão: abandonar defaultTableModel.

Abraço!