Contador de linhas no jtable

galera… preciso fazer com que minha aplicação conte a quantidade de registros (linhas) tem no meu
jTable exemplo:
no meu jTable tem um aluno cadastrado porem esse aluno concluiu algumas aulas e outras não
eu queria mandar para um campo de texto a quantidade de aulas concluidas para jTextField por exemplo…
quem poder ajudar agradeço muito…

para retornar no seu jTextField o numero total de linhas na sua jTable utilize:

jTextField.setText(suaTabela.getRowCount());

sim sandro mas queria pegar a quantidade de aulas concluidas pelo aluno tipo na minha tabela na coluna status_aula o aluno sandro tem 5 aulas concluidas e 2 não-concluidas queria pegar no campo de texto a quantidade 5 por exemplo entendeu?

Ah sim entendi,

nesse caso você pode criar um “for” que percorre tua jTable, verificando se a coluna status_aula for igual a
concluida, o contador soma 1, exemplo não testado abaixo, só para ter uma ideia:

        int cont = 0;
        for (int i = 0; i < suaTabela.getRowCount(); i++) {
            if (suaTabela.getValueAt(i, 1).toString().equals("Concluida"));
            cont++;
        }
        JOptionPane.showMessageDialog(null, cont);

então sandro assim eu pego sempre a quantidade de todas as linhas e não so as concluidas cara …
ajuda ai mano :slightly_smiling:

quando vc preenche a tabela, você popula ela dentro de um “for”, não é? Crie uma variável global do tipo inteiro ( Int ) e quando você estiver ‘populando’ a sua jTable, você coloca um IF verificando se está concluído ou não, se sim, você incrementa a sua variável ex:
if (seuList.get(i).getSeuParametro().equals"Concluido") { suaVariavelGlobal = suaVariavelGlobal + 1; }
Teste e diga se funciona.

não não uso um do while com arrayList preciso de coisa simples tipo do sandro_machado alogica dele esta correta mas não funciona pegando o equal e sim ele pega a qtd de todas as linhas e não so as concluidas…
vc poderia me dar um exemplo mais simples +CALERA

Cara, Testei aqui agora e funcionou, tens que verificar se está pegando a coluna certa, da esquerda pra direita e começa em 0, neste exemplo queria a coluna 3, então no getValueAt ficou 2.

    int cont = 0;
    for (int i = 0; i < tabelaLancamentos.getRowCount(); i++) {
        if (tabelaLancamentos.getValueAt(i, 2).toString().equals("Saida")) {
            cont++;
        }
    }
    JOptionPane.showMessageDialog(null, cont);

me retornou apenas o numero de linhas com a palavra “Saida” na coluna que especifiquei no caso 2;

não lembro bem se tentei ja com esse cod mudando a coluna mais chegando em casa atardinha vou tentar e lhe dou retorno se funcionou :slightly_smiling: agraeço desde ja…

vlw sandro deu certo cara, mas agora sugiu uma nova duvida;
como faço para atrubuir esse resultado a apenas um aluno exemplo:
cliquei com o mouse em cima do aluno sandro e mostre a quantidade de aulas concuidas so pelo sandro
porque até então o cod passado pega a qtd de todas as aulas concluidas na tabela e quero pegar so a quantidade do aluno clicado entendeu?

opa

só criar dentro do if que já existe, que você quer o resultado só do aluno selecionado usando o

tabelaLancamentos.getValueAt(tabelaLancamentos.getSelectedRow(), 1).toString()

esse vai retornar o valor da linha selecionada na coluna desejada.

claro isso você tem que colocar dentro de um evento MouseClicked(java.awt.event.MouseEvent evt)

Ok Sandro tentarei atardinha quando tiver em casa vlw mano :wink:

vc pode me dar um exemplo pratico sandro?

int cont = 0;
for (int i = 0; i < tabelaLancamentos.getRowCount(); i++) {
    if (tabelaLancamentos.getValueAt(i, 2).toString().equals("Saida") && tabelaLancamentos.getValueAt(i, COLUNA_NOME_ALUNO).toString().equals("NOME_ALUNO")) {
        cont++;
    }
}
JOptionPane.showMessageDialog(null, cont);
1 curtida

Exatamente como o JuniorMaia colocou, só não se esqueça de colocar dentro do evento mouseClicked,
devendo ficar assim.

private void tabelaLancamentosMouseClicked(java.awt.event.MouseEvent evt) {                                               
    int cont = 0;
    for (int i = 0; i < tabelaLancamentos.getRowCount(); i++) {
        if (tabelaLancamentos.getValueAt(i, 2).toString().equals("Saida") && tabelaLancamentos.getValueAt(i, COLUNA_NOME_ALUNO).toString().equals("NOME_ALUNO")) {
            cont++;
        }
    }
    JOptionPane.showMessageDialog(null, cont);
}
1 curtida

valeu @Sandro_Machado e @JuniorMaia deu certinho aqui como queria obg mesmo pessoal :slightly_smiling:

que bom cara, marque o tópico como resolvido. abraço