Как установить RowSorter для пользовательской табличной модели?
Я определил пользовательскую табличную модель, как показано ниже
class TModel extends AbstractTableModel {
Object col[] = null;
Object[][] data = null;
public void setCollen(Object[] col) {
this.col = col;
}
public void setObj(Object[][] oo) {
this.data = oo;
}
public int getColumnCount() {
return col.length;
}
public int getRowCount() {
return data.length;
}
public Object getValueAt(int row, int col) {
return data[row][col];
}
public String getColumnName(int column) {
return (String) col[column];
}
public boolean isCellEditable(int row, int col) {
return false;
}
public void setValueAt(Object aValue, int row, int column) {
data[row][column] = aValue;
}
public void clear() {
data = null;
}
}
И я определил таблицу, как это
TModel tableModel = new TModel();
JTable table = new JTable(tableModel);
Теперь я хочу использовать метод table.setRowSorter()
отсортировать данные таблицы.
Я пытался написать такой код
table.setRowSorter(new TableRowSorter(tableModel));
Очевидно, это неправильно.
Пожалуйста, помогите мне.
1 ответ
ваш
AbstractTableModel
неправильно, не завершено, отсутствуют важные уведомители, напримерfireTableCellUpdated(row, col);
вsetValueAt
эй....для правильной сортировки переопределить
ColumnClass
для основных функций сортировки вы можете определить
table.setAutoCreateRowSorter(true)
толькоПрочитайте учебник о Сортировке и фильтрации.
Я бы предложил использовать
DefaultTableModel
для структуры данных на основеObject[][]
или жеVector<Vector>
нет необходимости переопределять все уведомители реализованы и правильно