I would like to know: How can I reorder (re-sort) a JTable
rows after I insert a row?
I use the next code:
TableModel model = new DefaultTableModel(rows, columns) {
public Class getColumnClass(int column) {
Class returnValue;
if ((column >= 0) && (column < getColumnCount())) {
returnValue = getValueAt(0, column).getClass();
} else {
returnValue = Object.class;
}
return returnValue;
}
};
JTable table = new JTable(model);
RowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model);
table.setRowSorter(sorter);
JScrollPane pane = new JScrollPane(table);
This code works fine, and I can add new rows without problem, but I want after I insert a new row it re-sorts again using the first column ASC...
If you want real time updates, then you could try calling
TableRowSorter#setSortsOnUpdates
on theTabkeRowSorter
and pass ittrue
...Otherwise, if you want to control when updates are sorted, you could just call
TableRowSorter#sort
If you want to modify the sort order programically, then take a look at Sorting and Filtering which has an example