У меня есть JTable, в котором используется DefaultTableModel, и я разрешаю сортировку, когда пользователь щелкает заголовки столбцов. Однако, когда пользователь щелкает заголовок столбца с данными целочисленного типа, он не сортируется должным образом. Похоже, что это сортировка по 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;
}
};
Я никогда не отменял это раньше, и я не совсем уверен, что от меня ждут здесь.