[英]Sorting integers with JTable's default column sorter?
我目前在JTable上使用以下方法来对列进行自动排序
table.setAutoCreateRowSorter(true);
当前,这使我可以单击每个标题,并且相应的列将按字母排序。 当它尝试对具有整数的列进行排序时,情况变得一团糟。 它似乎是一次对每个数字进行排序,而不是按实际数字进行排序。 例如,它将说8大于100,因为8大于1。是否有某种方法可以覆盖此行为?
尝试对具有整数的列进行排序时,情况变得混乱
可能是因为:
getColumnClass()
方法来为该列返回Integer.class
。 仅当您的列类正确时,才使用正确的Comparator。 有关更多信息,以及有关如何重写getColumnClass()方法的示例,请参见Swing教程中有关“ 概念:渲染器和编辑器”的部分。
您可能需要使用特定的比较器设置行排序器:
Comparator<Integer> comparator;
TableRowSorter sorter;
table.setRowSorter(sorter);
sorter.setModel(table.getModel());
sorter.setComparator(comparator);
在这里可以找到更多有关比较器及其可能出现的问题的信息。 但是,@ camickr也是正确的,如果正确设置了列类,则通常不需要Integer。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.