olá galera, tenho duas classes, uma classe com a JTable, e outra com a Frame, porem não consigo adicionar a JTable na tela…
abaixo os códigos… desde jah agradeço a todos…
package TelaAplicação;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
import ClassesIMC.*;
public class PessoaTableModel extends AbstractTableModel {
private static final long serialVersionUID = 1L;
private List<Pessoa> linhas;
public PessoaTableModel() {
linhas = new ArrayList<Pessoa>();
}
public PessoaTableModel(List<Pessoa> listaDeSocios) {
linhas = new ArrayList<Pessoa>(listaDeSocios);
}
private String[] colunas = new String[] {"Código", "Nome", "Peso", "Altura" };
private static final int CODIGO = 0;
private static final int NOME = 1;
private static final int ALTURA = 2;
private static final int PESO = 3;
public int getRowCount() {
return linhas.size();
}
public int getColumnCount() {
return colunas.length;
}
public String getColumnName(int columnIndex) {
return colunas[columnIndex];
};
public Class<?> getColumnClass(int columnIndex) {
switch (columnIndex) {
case CODIGO:
return int.class;
case NOME:
return String.class;
case ALTURA:
return double.class;
case PESO:
return double.class;
default:
throw new IndexOutOfBoundsException("columnIndex out of bounds");
}
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return true;
}
public Object getValueAt(int rowIndex, int columnIndex) {
Pessoa pessoa = linhas.get(rowIndex);
switch (columnIndex) {
case CODIGO:
return pessoa.getCodigo();
case NOME:
return pessoa.getNome();
case ALTURA:
return pessoa.getAltura();
case PESO:
return pessoa.getPeso();
default:
throw new IndexOutOfBoundsException("columnIndex out of bounds");
}
}
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
Pessoa pessoa = linhas.get(rowIndex);
switch (columnIndex) {
case CODIGO:
pessoa.setCodigo((int) aValue);
break;
case NOME:
pessoa.setNome((String) aValue);
break;
case ALTURA:
pessoa.setAltura((double) aValue);
break;
case PESO:
pessoa.setPeso((double) aValue);
break;
default:
throw new IndexOutOfBoundsException("columnIndex out of bounds");
}
fireTableCellUpdated(rowIndex, columnIndex);
}
public Pessoa getPessoa(int indiceLinha) {
return linhas.get(indiceLinha);
}
public void addPessoa(Pessoa pessoa) {
linhas.add(pessoa);
int ultimoIndice = getRowCount() - 1;
fireTableRowsInserted(ultimoIndice, ultimoIndice);
}
public void removePessoa(int indiceLinha) {
linhas.remove(indiceLinha);
fireTableRowsDeleted(indiceLinha, indiceLinha);
}
public void addListaDePessoas(List<Pessoa> pessoas) {
int indice = getRowCount();
linhas.addAll(pessoas);
fireTableRowsInserted(indice, indice + pessoas.size());
}
public void limpar() {
linhas.clear();
fireTableDataChanged();
}
}