Ainda não descobri porque o nome das colunas não estão aparecendo na minha JTable. Vou colocar o código do TableModel. Agradeço antecipadamente quem conseguir descobrir o problema.
[code]public class TableModelOrcamento extends TableModelPadrao {
private List<Orcamento> orcamentos;
public int getRowCount() {
return orcamentos.size();
}
public Object getValueAt(int rowIndex, int columnIndex) {
switch (columnIndex) {
case 0: return orcamentos.get(rowIndex).getData();
case 1: return orcamentos.get(rowIndex).getValorTotal();
default: return null;
}
}
public void setOrcamentos(List<Orcamento> orcamentos) {
this.orcamentos = orcamentos;
}
public List<Orcamento> getOrcamentos() {
return orcamentos;
}
@Override
protected String[] criarColunas() {
return new String[]{"Data", "Total"};
}
}
public abstract class TableModelPadrao extends AbstractTableModel {
protected String[] colunas;
public TableModelPadrao() {
setColunas(criarColunas());
}
public int getColumnCount() {
return colunas.length;
}
public boolean isCellEditable(int row, int col) {
return false;
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
public String getColumnName(int col){
return colunas[col];
}
public String[] getColunas() {
return colunas;
}
public void setColunas(String[] colunas) {
this.colunas = colunas;
}
protected abstract String[] criarColunas();
O JScrollPane serve pra mostrar uma parte de um componente grande, gernciando bem legal a parte de renderização e utilização da memoria. Quando vc usa a Jtable, o scrollpane controla a vizualização da jtable ( linhas e colunas ). Logo, sobra para o scrollpane cotrolar tambem o header ( nome das colunas ).
Fica meio que obrigatorio o uso da JTable dentro de um JScrollPane.
Experimente criar um JPanel e usar o JScrollPane para exibi-lo num espaço menor do que o proprio pane criado ( aka colocar scrollbar para rolar a tela para baixo ).