JTable RowSorter 顺序错误
JTable RowSorter order wrong
我导入了javax.swing.table.TableRowSorter;
在 table 模型中使用了它。它适用于字符串,但对于数字,它以一种奇怪的方式对所有内容进行排序,如图所示。我是个编码菜鸟,所以我真的不知道如何正确 google 解决这样的问题。
DefaultTableModel model = new DefaultTableModel();
table.setAutoCreateRowSorter(true);
不确定您是否还需要更多代码。这是一团糟,因为在我开始这个之后,面向对象的编码出现在学校里。
你的问题是你的排序是按字母顺序排序,这对 String
对象很有效,但是一旦你有 Integers
排序,你就会遇到 2 > 19 的情况,因为按字母顺序 2 在 1 之后。
你需要这样的东西:
DefaultTableModel model = new DefaultTableModel(data,columns) {
@Override
public Class getColumnClass(int column) {
switch (column) {
case 4: {
//assuming that the int column you have is in the fourth column
return Integer.class;
} break;
default:
return String.class;
}
}
};
其中 data
是 Object[][]
,columns
是 Object[]
。
我导入了javax.swing.table.TableRowSorter;
在 table 模型中使用了它。它适用于字符串,但对于数字,它以一种奇怪的方式对所有内容进行排序,如图所示。我是个编码菜鸟,所以我真的不知道如何正确 google 解决这样的问题。
DefaultTableModel model = new DefaultTableModel();
table.setAutoCreateRowSorter(true);
不确定您是否还需要更多代码。这是一团糟,因为在我开始这个之后,面向对象的编码出现在学校里。
你的问题是你的排序是按字母顺序排序,这对 String
对象很有效,但是一旦你有 Integers
排序,你就会遇到 2 > 19 的情况,因为按字母顺序 2 在 1 之后。
你需要这样的东西:
DefaultTableModel model = new DefaultTableModel(data,columns) {
@Override
public Class getColumnClass(int column) {
switch (column) {
case 4: {
//assuming that the int column you have is in the fourth column
return Integer.class;
} break;
default:
return String.class;
}
}
};
其中 data
是 Object[][]
,columns
是 Object[]
。