Olá pessoal, estou usando AbstractTableModel para pareencher minha JTable. Quero adicionar 4 colunas em minha JTable, mas quando executo aparece apenas as linhas.
package util;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
import bean.Filme;
public class FilmeTableModel extends AbstractTableModel {
/**
*
*/
private static final long serialVersionUID = 1L;
// constantes que vão representar as colunas
// (só para facilitar o entendimento do código)
private final int COL_FILME = 0;
private final int COL_DESC = 1;
private final int COL_GENERO = 2;
private final int COL_SITUACAO = 3;
private List<Filme> filmes;
private String[] colunas;
public FilmeTableModel(ArrayList<Filme> filmes, String[] colunas) {
setLinhas(filmes);
setColunas(colunas);
}
public void setColunas(String[] strings) {
colunas = strings;
}
public void setLinhas(ArrayList list) {
filmes = list;
}
@Override
public int getRowCount() {
// cada filme na lista será uma linha
return filmes.size();
}
@Override
public int getColumnCount() {
// 4 colunas = filme, descrição, genero e situação
return 4;
}
public String getColumnName(int column) {
switch (column) {
case 0:
return "Filme";
case 1:
return "Descrição";
case 2:
return "Genêro";
case 3:
return "Situação";
}
return "";
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
// pega o filme da linha
Filme f = filmes.get(rowIndex);
// verifica qual valor deve ser retornado
switch (columnIndex) {
case 0:
return f.getC_nome();
case 1:
return f.getC_descricao();
case 2:
return f.getC_genero();
case 3:
return f.getF_situacao();
}
return "";
}
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
// pega o filme da linha
Filme f = filmes.get(rowIndex);
// verifica qual valor deve ser alterado
switch (columnIndex) {
case 0:
f.setC_nome(aValue.toString());
break;
case 1:
f.setC_descricao(aValue.toString());
break;
case 2:
f.setC_genero(aValue.toString());
break;
case 3:
f.setF_situacao(aValue.toString());
}
// avisa que os dados mudaram
fireTableDataChanged();
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
// nao vai ser editável
return false;
}
}
public void preencherTabela(){
FilmeTableModel modelo;
String[] colunas = new String[]{"Filme","Descrição","Genêro","Situação"};
ArrayList<Filme> filmes = new ArrayList<Filme>();
FilmeDAO filmeDAO = new FilmeDAO();
try {
filmes = filmeDAO.consultarFilme();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
modelo = new FilmeTableModel(filmes,colunas);
tableFilme.setModel(modelo);
}
Toda vez que executo minha aplicação tenho apenas as linhas. Por quê isto está acontecendo?