Java-jTable排序数
我已经寻找了很长时间,所以我决定在这里写最后。我对jTable中的数字(整数、双精度、短字符)排序有问题,我已经覆盖了getColumnClass方法,但是它仍然不能正确排序数字 以下是我所做的:Java-jTable排序数,java,swing,sorting,jtable,integer,Java,Swing,Sorting,Jtable,Integer,我已经寻找了很长时间,所以我决定在这里写最后。我对jTable中的数字(整数、双精度、短字符)排序有问题,我已经覆盖了getColumnClass方法,但是它仍然不能正确排序数字 以下是我所做的: List<Class> types = new ArrayList(); types.add(String.class); types.add(String.class); types.add(String.class); for (int s = 0; s
List<Class> types = new ArrayList();
types.add(String.class);
types.add(String.class);
types.add(String.class);
for (int s = 0; s < sloupce.size(); s++) {
try {
Statement st = log.getSt();
ResultSet r = st.executeQuery("SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '" + table + "' AND COLUMN_NAME = '" + sloupce.get(s) + "'");
if (r.next()) {
String typ = r.getString("DATA_TYPE");
if (!typ.equals("varchar")) {
types.add(Integer.class);
} else {
types.add(String.class);
}
}
} catch (Exception e) { System.out.println(e.toString()); }
}
DefaultTableModel tm = new DefaultTableModel(new Object[0][], new String[] {" first column ", " second ", " another "}) {
@Override
public Class getColumnClass(int columnIndex) {
return types.get(columnIndex);
}
};
List types=new ArrayList();
type.add(String.class);
type.add(String.class);
type.add(String.class);
对于(int s=0;s
然后我用正确的类填充类型数组,当我测试getColumnClass方法时,它确实返回正确的类(java.lang.Integer),但它仍然错误地对值进行排序
//更新:
我代表的是MySQL DB中的一个表,因此我更新了我的确切代码。你还需要向表模型中添加整数对象,而不是碰巧是数字的字符串对象。请发布更好的帮助,那么你能告诉我如何添加“整数对象”,因为我的表应该显示MySQL中的任何表,所以我永远不知道下一列是整数还是字符串。