使用JTable的默认列分类器对整数进行排序?

zPr*_*mer 1 java swing numbers jtable rowsorter

我目前在JTable上使用以下方法来对列进行自动排序

table.setAutoCreateRowSorter(true);
Run Code Online (Sandbox Code Playgroud)

这当前允许我单击每个标题,相应的列将对任何带字母的内容进行排序.当它试图对具有整数的列进行排序时,它正在搞乱.它似乎是一次排序每个数字而不是按实际数字排序.例如,它会说8大于100,因为8大于1.有什么方法可以覆盖这种行为吗?

cam*_*ckr 8

当它试图对具有整数的列进行排序时,它正在搞乱

可能是因为:

  1. 您将数字存储为字符串,或
  2. 您将数据存储为Integer对象,但未覆盖getColumnClass() TableModel 的方法以返回Integer.class该列.只有在列类正确时才会使用正确的比较器.

有关更多信息,请参阅概念:渲染器和编辑器的Swing教程中的部分,以及如何覆盖getColumnClass()方法的示例.