使用RowSorter为整数字符串排序JTable

时间:2016-05-15 05:44:22

标签: java swing jtable tablerowsorter

我希望标题不会太混乱。基本上,我有一个JTable,它列出了一个目录,其中包含文件/目录名,日期和大小等信息。当我单击JTable的标题时,我想按该列对表进行排序。下面的监听器适用于名称和日期,但会产生不正确的大小结果:

    fSorter = new TableRowSorter<>(table.getModel());
    table.setRowSorter(fSorter);
    table.getTableHeader().addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent event) {
              int columnIdx = table.getColumnModel().getColumnIndexAtX(event.getX());

              List<RowSorter.SortKey> sortKeys = new ArrayList<>();
              SortOrder order =  SortOrder.values()[fCountClicks % 2];
              sortKeys.add(new RowSorter.SortKey(columnIdx, order));
              fSorter.setSortKeys(sortKeys);
              ++fCountClicks;
        }
    });

它不起作用的原因是我的大小如60和277284.这种类型在60中看到“6”并假设它大于277284,因为它比较了“6”和“2”。有人可以建议我在这种情况下可以做些什么吗?我应该创建一个自定义排序还是我可以以某种方式表明这个String实际上是一个Integer,它可以解决它?谢谢你的帮助!

0 个答案:

没有答案