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
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. 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???
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
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!
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?
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