У меня есть JTable, который использует DefaultTableModel, и я разрешаю сортировку, когда пользователь нажимает на заголовки столбцов. Однако, когда пользователь нажимает на заголовок для столбца с данными типа integer, он не сортирует должным образом. Похоже, что он сортирует по String вместо целочисленного типа.
Вот часть моего кода, где я фактически добавляю данные в таблицу:
DefaultTableModel aModel = (DefaultTableModel) mainView.logEntryTable.getModel();
ResultSetMetaData rsmd; try {
mainView.logEntriesTableModel.setRowCount(0);
rsmd = rs.getMetaData();
int colNo = rsmd.getColumnCount();
while(rs.next()){
Object[] objects = new Object[colNo];
for(int i=0;i<colNo;i++){
objects[i]=rs.getObject(i+1);
}
aModel.addRow(objects);
count++;
}
mainView.logEntryTable.setModel(aModel);
mainView.logEntryTable.getColumnModel().getColumn(0).setMaxWidth(80);
Итак, я попытался переопределить этот метод и получил следующее:
@Override
public Class<?> getColumnClass(int columnIndex){
if( columnIndex == 0){
// Return the column class for the integer column
}else{
// Return the column class like we normally would have if we didn't override this method
}
return null;
}
};
Я никогда не переоценивал это раньше, и я не совсем уверен, что он ждет от меня здесь.