我已经阅读了几个关于 JTable 排序的问题:
但由于某种原因,我仍然无法做到正确。
我写了这个:
String allItemsColumns [] = { "#", "Name", "Stock",
"Price", "Type", "Supplier", "Location", "" };
allItemsTableModel = new DefaultTableModel(null, allItemsColumns);
allItemsTable = new JTable(allItemsTableModel)
{
Class<?>[] types = { Integer.class, String.class, Integer.class,
Double.class, String.class, String.class, String.class, ImageIcon.class };
@Override
public Class<?> getColumnClass(int columnIndex) {
return this.types[columnIndex];
}
};
但我仍然得到
0
10000
20
当我对库存进行分类时。可能这是一个显而易见的问题,但我现在真的很想念它。
我认为我如何添加信息并不重要,因为我(这样认为)告诉它以整数、双精度或字符串的形式读取列
我的排序方法:
allItemsTable.setAutoCreateRowSorter(true);
TableRowSorter<DefaultTableModel> rowSorter =
(TableRowSorter<DefaultTableModel>)allItemsTable.getRowSorter();
rowSorter.setComparator(3, new Comparator<String>() {
@Override
public int compare(String o1, String o2)
{
return Integer.parseInt(o1) - Integer.parseInt(o2);
}
});
我是从我看到的一个问题中得出的。第 3 列是“Stock”,它只是整数,但结果,就像我说的那样:
0
10000
20