我目前在JTable上使用以下方法对列进行自动排序
table.setAutoCreateRowSorter(true);
这允许我单击每个标题,相应的列将对任何带字母的内容进行排序。当它试图对具有整数的列进行排序时,它正在搞乱。它似乎是一次排序每个数字而不是按实际数字排序。例如,它会说8大于100,因为8大于1.有什么方法可以覆盖这种行为吗?
答案 0 :(得分:8)
当它试图对具有整数
的列进行排序时,它正在搞乱
可能是因为:
getColumnClass()
方法以返回该列的Integer.class
。只有在列类正确时才会使用正确的比较器。有关更多信息,请参阅Concepts: Renderers and Editors上的Swing教程中的部分以及如何覆盖getColumnClass()方法的示例。
答案 1 :(得分:0)
您可能需要使用特定的比较器设置行分类器:
Comparator<Integer> comparator;
TableRowSorter sorter;
table.setRowSorter(sorter);
sorter.setModel(table.getModel());
sorter.setComparator(comparator);
Here可以更多地了解比较器及其可能存在的问题。但是,@ camickr也是正确的,如果列类设置正确,通常不需要Integer。