[RESOLVIDO] Como pegar os valores da célula que está selecionada na JTable

10 respostas
T

Pessoal, gostaria de saber como faço para pegar os valores de uma célula selecionada da JTable e enviar para uma variável. Alguém tem alguma ideia de como fazer isso?

10 Respostas

G
tabela.getValueAt(linha, coluna)
T

Esse comando requer uma linha e uma coluna fixa, e eu quero a linha e a coluna que estão selecionadas.

G
tabela.getValueAt(tabela.getSelectedRow(), tabela.getSelectedColumn())
T

Cara eu fiz um exemplo aqui com seu código mas não deu certo, agradeço desde já.

if(jTable1.getRowCount() < 1){
      String li = String.valueOf(jTable1.getValueAt(jTable1.getSelectedRow(), jTable1.getSelectedColumn()));
      System.out.println("Linha: "+li);
}
B

Vc selecionou uma celular na tabela?
A tabela esta preenchida?
Lança alguma exceção?
pois o código esta correto.

T

Eu criei um comando no programa que permite que o usuário crie uma tabela com um tal número de linhas e colunas. A tabela é criada com todos os campos nulos, sendo que eu quero que ele pegue os valores da célula selecionada a qualquer momento. Como eu faço isso?

B

O código acima esta correto
antes de pegar o valor da celula

String li = String.valueOf(jTable1.getValueAt(jTable1.getSelectedRow(), jTable1.getSelectedColumn()));

vc deve ter selecionado a mesma, se não os metodos “jTable1.getSelectedRow()” e “jTable1.getSelectedColumn()” vai retornar -1 e dará um erro.

se já tiver selecionado a celula, como vc criou ela com os campos nulos o comando

System.out.println("Linha: "+li);

vai imprimir no console a stringr “Linha: null”.

T

Eu não entendi muito bem o que você quis dizer com “vc deve ter selecionado a mesma”, pode me explicar melhor?

B

vc tem q dar um clic com o mouse para que a celula seja selecionada e ela vai ficar com uma cor diferenciada quando vc selecionar ela

T

Consegui resolver o problema, usei um evento de clique sobre a JTable.

private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {                                     
        int linha = jTable1.getSelectedRow();
        int coluna = jTable1.getSelectedColumn();
        String valor = String.valueOf(jTable1.getValueAt(linha, coluna));
        System.out.println(valor);
}
Criado 24 de maio de 2015
Ultima resposta 28 de mai. de 2015
Respostas 10
Participantes 3