Pessoal, estou com uma dúvida, e não sei por onde começar.
Peguei essa classe aqui no fórum que manipula um modelo pra JTable, mas no meu arraylist eu tenho vários objetos do mesmo tipo e no método addRow ele tem como argumentos:
public void addRow( String [] dadosLinha){
getLinhas().add(dadosLinha);
int linha = getLinhas().size()-1;
fireTableRowsInserted(linha,linha);
return;
}
Não sei como eu posso adicionar meus objetos na JTable.
Essa é a minha classe de onde tento adicionar os objetos:
[code]public void preencheTabela(){
ArrayList lista = main.listaTodos();
String[] cabecalho = {“CODIGO”,“NOME”,“ENDERECO”,“D.NASC.”};
ModeloTabela mo = new ModeloTabela(lista, cabecalho);
jtPesquisarDizimistas.setModel(mo);
}[/code]
Esta classe, peguei aqui no fórum.
[code]package visao;
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.table.AbstractTableModel;
public class ModeloTabela extends AbstractTableModel{
private ArrayList linhas = null;
private String [] colunas = null;
public ModeloTabela(ArrayList dados, String[] colunas){
setLinhas(dados);
setColunas(colunas);
}
public int getColumnCount() {
return getColunas().length;
}
public int getRowCount() {
return getLinhas().size();
}
public Object getValueAt(int rowIndex, int columnIndex) {
// Obtem a linha, que é uma String []
String [] linha = (String [])getLinhas().get(rowIndex);
// Retorna o objeto que esta na coluna
return linha[columnIndex];
}
public String[] getColunas() {return colunas;}
public ArrayList getLinhas() {return linhas;}
public void setColunas(String[] strings) {colunas = strings;}
public void setLinhas(ArrayList list) {linhas = list;}
public void setValueAt(Object value, int row, int col){
// Obtem a linha, que é uma String []
String [] linha = (String [])getLinhas().get(row);
// Altera o conteudo no indice da coluna passado
linha[col] = (String)value;
// dispara o evento de celula alterada
fireTableCellUpdated(row,col);
}
public void addRow( String [] dadosLinha){
getLinhas().add(dadosLinha);
// Informa a jtable de que houve linhas incluidas no modelo
// COmo adicionamos no final, pegamos o tamanho total do modelo
// menos 1 para obter a linha incluida.
int linha = getLinhas().size()-1;
fireTableRowsInserted(linha,linha);
return;
}
public void removeRow(int row){
getLinhas().remove(0);
// informa a jtable que houve dados deletados passando a
// linha reovida
fireTableRowsDeleted(row,row);
}
public boolean removeRow(String val, int col){
// obtem o iterator
Iterator i = getLinhas().iterator();
int linha = 0;
// Faz um looping em cima das linhas
while(i.hasNext()){
// Obtem as colunas da linha atual
String[] linhaCorrente = (String[])i.next();
linha++;
// compara o conteudo String da linha atual na coluna desejada
// com o valor informado
if( linhaCorrente[col].equals(val) ){
getLinhas().remove(linha);
// informa a jtable que houve dados deletados passando a
// linha removida
fireTableRowsDeleted(linha,linha);
return true;
}
}
return false;
}
public String getColumnName(int col){
return getColunas()[col];
}
}
[/code]