Jtable无法对Integer或Double进行排序

时间:2016-02-07 18:35:22

标签: java swing sorting jtable comparator

我有一个包含5列的表(1-2-3 String 4 Integer 5 Double) 当我尝试按最后两列对表进行排序时,它排序不正确。

我尝试使用比较器,但为tablemodel获取 IndexOutOfBoundsException

private String[] colonne  = {"Barcode", "Modello", "Descrizione", 
                                "Quantitativo", "prezzo"};

//other code

DefaultTableModel tableModel = new DefaultTableModel(colonne, 0);

//other code

table = new JTable(tableModel);

TableRowSorter<DefaultTableModel> sorter = new TableRowSorter<DefaultTableModel>(tableModel);


sorter.setComparator(0, new Comparator<String>() {

            @Override
            public int compare(String o1, String o2)
            {
                return Integer.parseInt(o1) - Integer.parseInt(o2);
            }
        });



table.setRowSorter(sorter);

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

如果你的列包含Integer和Double对象,那么你需要覆盖getColumnClass(...)的{​​{1}}方法来告诉表格列的类是什么:

TableModel

然后该表将使用相应的Comparator。您不需要创建自定义比较器。