Olá pessoal, depois de minhas andanças em vários artigos e links lidos sobre jTable, consegui criar minha tableModel, porém, agora estou com um problema na forma de chamá-la pelo método setModel() das propriedades da jTable no Netbeans.
Eu fiz um teste da seguinte forma no netbeans e funcionou:
Clicar com o botão direito na jtable, Conteúdo da tabela, Personalizar código, daí no método setModel eu colocava da seguinte forma jTableAlunos.setModel(getTableModelAlunos()); e meu método que eu utilizava para teste era o seguinte:
[code] private DefaultTableModel getTableModelAlunos(){
String[][] linhas = new String [][]{
{"SP","Sao Paulo"},
{"RJ","Rio de Janeiro"},
{"RN","Rio Grande do Norte"},
{"PR","Parana"}
};
String[] colunas = new String []{"Estado","Cidade"};
return new DefaultTableModel(linhas, colunas);
}[/code]
Preenchia tudo na mão para teste…
Então juntando tudo que encontrei na net, acabei chegando a essa classe:
[code]public class AlunoTableModel extends AbstractTableModel {
private String[] nomeColunas = {"Código", "Nome", "E-mail"};
private List<Aluno> alunos;
// construtor padrão criando um arraylist de alunos
public AlunoTableModel(){
alunos = new ArrayList<Aluno>();
}
// construtor que adiciona a lista passada pelo método ao alunos
public AlunoTableModel(List<Aluno> lista){
this();
this.alunos.clear();
this.alunos.addAll(lista);
super.fireTableDataChanged();
}
public int getRowCount() {
return alunos.size();
//throw new UnsupportedOperationException("Not supported yet.");
}
public int getColumnCount() {
return nomeColunas.length;
//throw new UnsupportedOperationException("Not supported yet.");
}
public Object getValueAt(int rowIndex, int columnIndex) {
Aluno aluno = alunos.get( rowIndex );
switch( columnIndex ) {
case 0: return aluno.getId();
case 1: return aluno.getNome();
case 2: return aluno.getEmail();
}
return null;
//throw new UnsupportedOperationException("Not supported yet.");
}
}[/code]
Agora a dúvida, como que eu altero o método getTableModelAlunos() para retornar para a minha tabela?
Eu tentei da seguinte forma?
[code] private void getTableModelAlunos(){
AlunoDao ad = new AlunoDao();
AlunoTableModel atm = new AlunoTableModel(ad.listarAlunos());
jTableAlunos.setModel(atm);
}[/code]
Mas tenho que retornar alguma coisa… não pode ser void, então o que retorno?
O piripaque deu aqui, e deu tilt no pensamento também, já tentei JTable, DefaultTableModel… e não consigo progredir.
Se alguém puder ajudar.
Obrigado.