I imported javax.swing.table.TableRowSorter;
used it in the table model. It works properly with Strings, but with numbers it orders everything in a weird way, as shown in the picture. I'm a noob at coding so I don't really know how to properly google for such an issue yet.
DefaultTableModel model = new DefaultTableModel();
table.setAutoCreateRowSorter(true);
Not sure if you still need more code. It is a mess tbh, as object oriented coding came up in school after i started this.
CodePudding user response:
Your problem is that your sorting is doing an alphabetical sort, which works well for String
objects, but once you have Integers
to sort, you will have the situation that 2 > 19, because alphabetically 2 is after 1.
You will need something like:
DefaultTableModel model = new DefaultTableModel(data,columns) {
@Override
public Class getColumnClass(int column) {
switch (column) {
case 4: {
//assuming that the int column you have is in the fourth column
return Integer.class;
} break;
default:
return String.class;
}
}
};
where data
is an Object[][]
and columns
is an Object[]
.