Java-jTable排序数

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

我已经寻找了很长时间,所以我决定在这里写最后。我对jTable中的数字(整数、双精度、短字符)排序有问题,我已经覆盖了getColumnClass方法,但是它仍然不能正确排序数字

以下是我所做的:

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中的任何表,所以我永远不知道下一列是整数还是字符串。