Segue o meu código que estou preenchendo meu JTable
Vi vários exemplos até um que o ViniGodoy passou, só que não consegui colocar no meu.
public void fnCarregaGrid(String[] vCol, Vector rData) throws SQLException, ParseException {
//Defini as colunas
//final String[] colunas = {“id”, “Código”, “Descrição”};
final String[] colunas = vCol;
final Vector rowDatas = new Vector();
rowDatas.addAll(rData);
TableModel dataModel = new AbstractTableModel() {
public int getColumnCount() {
return colunas.length;
}
public int getRowCount() {
return rowDatas.size();
}
public Object getValueAt(int row, int col) {
return ((Vector) rowDatas.elementAt(row)).elementAt(col);
}
public String getColumnName(int column) {
return colunas[column];
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
public boolean isCellEditable(int row, int col) {
//return col != 2; //Escolha a coluna que não vai ser editável
return false; //Bloquea todas as colunas
}
public void setValueAt(Object aValue, int row, int column) {
((Vector) rowDatas.elementAt(row)).setElementAt(aValue, column);
}
};
tabLista.setModel(dataModel);
tabLista.setRowHeight(20);
tabLista.getColumnModel().getColumn(0).setMinWidth(0);
tabLista.getColumnModel().getColumn(0).setMaxWidth(0);
tabLista.getColumnModel().getColumn(1).setPreferredWidth(70);
tabLista.getColumnModel().getColumn(2).setPreferredWidth(480);
tabLista.getColumnModel().getColumn(3).setPreferredWidth(80);
tabLista.getColumnModel().getColumn(4).setPreferredWidth(50);
}//fim do carrega grid
Agora estou precisando colocar a opção de ordenar o Jtable ao clicar na coluna desejada. só que se eu marcar a opção autoCreateRowSorter dar o seguinte erro java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
Só funciona se eu deixar essa opção como false.
Como tenho que fazer para colocar essa ordenação no JTable?