Olá, estou tentando desenvolver uma aplicação que recebe entradas e as coloca numa tabela. Entretando ainda estou com dúvidas de como colocar cada valor da entrada em sua coluna. Estou usando essa table model: http://www.guj.com.br/posts/list/225793.java#1156821
Por exemplo: Minha tabela tem as colunas A, B e C. Recebo uma entrada com o valor X, Y, Z. Como definir para o X ser colocado em A, Y em B e Z em C?
Eu coloquei pra criar a nova linha e adicionar a entrada na lista, mas a linha nova vem sempre vazia.
A JTable fica sabendo o que deve ser exibido nas células chamando internamente o método “getValueAt” do TableModel.
As colunas A, B e C representam os índices 0, 1 e 2. No exemplo que está se baseando, tem um switch que está vendo qual é o índice da coluna selecionado e retorna o valor respectivo, no caso X, Y, Z. Ficaria mais ou menos assim:
[code] @Override
public Object getValueAt(int rowIndex, int columnIndex) {
// Pega a linha especificada.
SuaClasse seuObjeto = linhas.get(rowIndex);
// Retorna o campo referente a coluna especificada.
switch (columnIndex) {
case 0: // Coluna A
return seuObjeto.getX(); // X para coluna A
case 1: // Coluna B
return seuObjeto.getY(); // Y para coluna B
case 2: // Coluna C
return seuObjeto.getZ(); // Z para coluna C
default:
throw new IndexOutOfBoundsException("columnIndex out of bounds");
}
}[/code]
No caso do TableModel, ele é específico para trabalhar com uma classe (Socio, no caso do exemplo). Portanto, os valores X, Y e Z não são passados individualmente para a tabela, e sim um objeto que possuam os atributos X, Y e Z.
Implementando o método getValueAt, se preocupe apenas em passar o objeto específico para o TableModel. A chamada ao método getValueAt e a exibição dos valores na tela ficam a cargo da JTable.