简体   繁体   English

JTable RowSorter 顺序错误

[英]JTable RowSorter order wrong

I imported javax.swing.table.TableRowSorter;我导入了 javax.swing.table.TableRowSorter;

used it in the table model.在表 model 中使用它。 It works properly with Strings, but with numbers it orders everything in a weird way, as shown in the picture.它适用于字符串,但对于数字,它以一种奇怪的方式对所有内容进行排序,如图所示。 I'm a noob at coding so I don't really know how to properly google for such an issue yet.我是编码的菜鸟,所以我真的不知道如何正确地用谷歌搜索这样的问题。

在此处输入图像描述

 DefaultTableModel model = new DefaultTableModel();
 table.setAutoCreateRowSorter(true);

Not sure if you still need more code.不确定您是否还需要更多代码。 It is a mess tbh, as object oriented coding came up in school after i started this.这是一团糟,因为在我开始这个之后,学校里出现了面向 object 的编码。

Your problem is that your sorting is doing an alphabetical sort, which works well for String objects, but once you have Integers to sort, you will have the situation that 2 > 19, because alphabetically 2 is after 1.你的问题是你的排序是按字母顺序排序的,这对String对象很有效,但是一旦你有Integers要排序,你就会遇到 2 > 19 的情况,因为按字母顺序,2 在 1 之后。

You will need something like:您将需要类似的东西:

        DefaultTableModel model = new DefaultTableModel(data,columns) {
            @Override
            public Class getColumnClass(int column) {
                switch (column) {
                    case 4: {
                        return Integer.class; //assuming that the int column you have is in the fourth column
                    } break;
                    default:
                        return String.class;
                }
            }
        };

where data is an Object[][] and columns is an Object[] .其中dataObject[][]columnsObject[]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM