在JTable中按列对行进行排序

use*_*041 2 java swing jtable

当您单击JTable上的列标题时,它会按字母顺序对行进行排序.除了一个列之外,这适用于我的所有列.在此列中,值都是字符串,但包含数字.我需要根据它们的十进制值而不是字符串值对它们进行排序.

知道怎么做到这一点?

mKo*_*bel 10

请阅读有关JTable的教程,其中包含TableRowSorter示例,

你的答案是这些代码行,正确设置列类

public Class getColumnClass(int c) {
   return getValueAt(0, c).getClass();
}

// or could be in most cases hardcoded, and I'm using that too

            @Override
            public Class<?> getColumnClass(int colNum) {
                switch (colNum) {
                    case 0:
                        return Integer.class;
                    case 1:
                        return Double.class;
                    case 2:
                        return Long.class;
                    case 3:
                        return Boolean.class;
                    case 4:
                        return String.class;
                    case 5:
                        return Icon.class;
                    /*case 6:
                    return Double.class;
                    case 7:
                    return Double.class;
                    case 8:
                    return Double.class;*/
                    default:
                        return String.class;
                }
            } 
Run Code Online (Sandbox Code Playgroud)