0

我做了一个jtable,到目前为止一切正常,但我在对表的值进行排序时仍然遇到问题。我的一些代码:

    int nalt = (int) (1 + ((altmax - altmin) / incr));
    tabela = new JTable(new Object[nalt][6], colunas);
    for (int i = 0; i <= (nalt - 1); i = i) {
        for (double j = altmin; j <= altmax; j = j + incr) {
            Double tati = new Double(j);
            tabela.setValueAt(tati, i, 0);
            i = i + 1;
        }
    }
    tabela.setPreferredScrollableViewportSize(tabela.getPreferredSize());
    tabela.setFillsViewportHeight(true);
    tabela.setAutoCreateRowSorter(true);
    JScrollPane jps = new JScrollPane(tabela);
    panel2.add(jps);

问题是,当我尝试将列从大到小排序时,我得到了这样的结果:

950
9000 
850
80000
7500
7
6000

如果你能帮助我,我将不胜感激

谢谢

4

1 回答 1

2

显示的排序顺序似乎基于String如此处所示,您的(看不见的)TableModel必须返回适合Comparable数字排序的类型,例如Double.class. 有关示例,请参阅教程

附录:我做错了什么?

此处getColumnClass()显示了 Double.class的最小实现。启用自动和实验以查看效果。RowSorter

table.setAutoCreateRowSorter(true);
于 2013-08-04T22:40:32.947 回答