Gente escrevi meu tablemodel mas to com prblemas com ele. Mas especificamento no metodo setValueAt.
package br.com.folhax.gui.controls;
import java.util.List;
import javax.swing.table.AbstractTableModel;
/**
*
* @author Matheus
*/
public class MatheusTableModel extends AbstractTableModel{
private List nomecoluna; //Lista com os nomes das colunas;
private List<List> dadoscoluna; // Lista bidimenssional
private boolean celledit = false;
public MatheusTableModel(List nomecoluna, List<List> dadoscoluna){
this.nomecoluna = nomecoluna;
this.dadoscoluna = dadoscoluna;
}
public int getRowCount() { // Cada produto uma linha
return dadoscoluna.size();
}
public int getColumnCount() { // Quantidade de colunas
return nomecoluna.size();
}
public Object getValueAt(int rowIndex, int columnIndex) { //Dados que serão exibidos
return dadoscoluna.get(rowIndex).get(columnIndex);
}
@Override
public String getColumnName(int columnIndex){ // Nomes das colunas.
return nomecoluna.get(columnIndex).toString();
}
@Override
public Class getColumnClass(int columnIndex) { // Classe que representa a coluna
return dadoscoluna.get(0).get(columnIndex).getClass();
}
@Override
public void setValueAt(Object dados, int rowIndex, int columnIndex){ // Adiciona um dado a uma celula.
dadoscoluna.get(rowIndex).add(columnIndex, dados);
fireTableCellUpdated(rowIndex, columnIndex);
}
public void setTableEditable(boolean celledit){ // Seta a tabela será editável
this.celledit = celledit;
fireTableStructureChanged();
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex){ // Retorna se a celula é editavel
return celledit;
}
public void addDados(List dados){ // Adiciona dados a tabela
dadoscoluna.add(dados);
fireTableRowsInserted(dadoscoluna.size()-1, dadoscoluna.size()-1);
}
public void removeDados(int rowIndex) { // Remove dados da tabela
dadoscoluna.remove(rowIndex);
fireTableRowsDeleted(rowIndex, rowIndex);
}
public List getRowData(int rowIndex){
return dadoscoluna.get(rowIndex);
}
}
Quando eu sobescrevo esse metodo a jtable fica copiando as celulas sozinhas, digamos
|Codigo|Nome |
|_||
|_||
Essa minha tabela terá suas celulas editaveis. Quando eu dou duplo clique em uma celula da coluna código e depois clico em qualquer outra celula da tabela, o valor que esta na celula que eu cliquei se copia para a celula da coluna ao lado, ou seja, para a celula da coluna nome.
Quando eu removo o metodo setValueAt do modelo o bug não acontece mais. O que pode estar errado com o mudelo?
