我有一个包含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);
我该如何解决这个问题?
答案 0 :(得分:3)
如果你的列包含Integer和Double对象,那么你需要覆盖getColumnClass(...)
的{{1}}方法来告诉表格列的类是什么:
TableModel
然后该表将使用相应的Comparator。您不需要创建自定义比较器。