Eu vi essa pergunta em um outro forum de java, mas la nao teve resposta, entao eu faço a pergunta do colega aqui nesse, espero ter a reposta.
Ola pessoal
gostaria de saber como eu posso pegar um certo valor de uma certa Celula de um JTable
Eu crio um Modelo de Tabela extendido do AbstractTableModel
e eu implementei o metodo getValueAt(int linha,int coluna)
eu sei que ele retorna o Object normal, o problema é.
eu quero pegar a celula que o Usuario clicou no JTable, como eu vou saber qual a Linha e qual a Coluna que o cara clicou no JTable pra mim passar pro método getValueAt?
Acho que é uma questao simples pra quem trabalha com Java profissionalmente
Obrigado
Pegar valor de um JTable
M
5 Respostas
A
O método getValueAt() retorna o valor na célula dando a coordenada. Ou seja, ele recebe o número da linha e da coluna que se quer o valor, retornando um Object.
Basicamente a implementação dele é da seguinte forma:
public Object getValueAt(int linha, int coluna){
Vector vet = null;
Object o = null;
try{
vet = (Vector)dados.elementAt(linha);
o = vet.elementAt(coluna);
}
catch(ClassCastException e){
}
return o;
}
Quando o usuário clica na tabela, o método getValueAt(int, int) é chamado passando o número da linha e coluna clicados, a API faz isso. <img src="//https://cdn.jsdelivr.net/gh/twitter/twemoji@14/assets/72x72/s.pnglight_smile.png?v=5" title=":slight_smile:" class="emoji" alt=":slight_smile:"> Então, você tem que ler os valores, primeiro na horizontal e depois na vertical para então saber o valor da célula. Note que primeiro é criado um vector da linha clicada, depois um vector da coluna clicada.
Ceirto??? <img src="//https://cdn.jsdelivr.net/gh/twitter/twemoji@14/assets/72x72/s.pnglight_smile.png?v=5" title=":slight_smile:" class="emoji" alt=":slight_smile:">
M
Valeu pelas explicações aspirantes, mas eu ainda nao entendi uma coisa…
o que eu quero é o seguinte…
quando eu apertar um botao, eu guardo numa variavel o valor da celula…
ae como eu vou saber a linha e coluna?
± assim
btnMostrar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evento) {
vValor = modelo.getValueAt(?,?);
}
});
modelo é meu objeto estanciado da classe ModeloTabela que eu criei extendendo AbstractTableModel
G
Olá, moço!
bem, vamos lá:
Se você quiser saber qual o índice da linha selecionada pelo usuário:
JTable.getSelectedRow() => retorna um inteiro, que indica qual a linha selecionada pelo usuário; Retorna -1 se nenhuma linha estiver selecionada!
Espero ter ajudado!
abraços! 
G
Para completar minha resposta:
no código fonte que tu passou na tua mensagem, para fazer o que você quer, ficaria mais ou menos assim:
btnMostrar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evento) {
int linha = nomeDeSuaTabela.getSelectedRow();
int coluna = x; // x é o número da coluna dentro de sua tabela, da qual
//você quer resgatar o valor
vValor = modelo.getValueAt(linha, coluna);
}
});
Acho que é isso…
A propósito, não tem uma vaga pra mim aonde você trabalha? <img src="//https://cdn.jsdelivr.net/gh/twitter/twemoji@14/assets/72x72/s.pngmiley.png?v=5" title=":smiley:" class="emoji" alt=":smiley:">
M
Obrigado givaldo
agora deu tudo certo…
sobre trabalhar onde eu trabalho, eu infelismente não sou o dono da empresa, hehehe, e aqui nem trabalhamos com java (ainda não), apenas Delphi e PHP, mas um dia pretendo mudar as coisas aqui pra Java, por isso estou estudando ela…
obrigado pela ajuda ae
Criado 26 de fevereiro de 2003
Ultima resposta 28 de fev. de 2003
Respostas 5
Participantes 3
Alura Sistemas operacionais: entenda seu conceito e suas funções Descubra o que são sistemas operacionais, suas funções e tipos. Aprenda tudo de forma clara e objetiva. Não perca tempo!
Casa do Codigo Orientacao a Objetos: Aprenda seus conceitos e suas... Por Thiago Leite e Carvalho — Casa do Codigo