JTable将整数作为字符串排序

问题描述 投票:0回答:1

所以我有一个JTable,其中填充了来自文本文件的数据,我需要根据第六列“ Stock”对表进行排序

File inputFile = new File("Stock.txt");
BufferedReader br = new BufferedReader(new FileReader(inputFile));


static Object[] colContent = { "Barcode", "Device Name", "Device Type", "Brand", "Colour", "Connectivity", "Stock", "ogCost", "Price", "Additional" };          
static Object[][] data={ {null,null,null,null,null,null,null,null,null,null }};
JTable table = new JTable((Object[][]) data, colContent);

我已经尝试了所有方法,包括覆盖表模型,但似乎无济于事!

        DefaultTableModel model = new DefaultTableModel() {

            @Override
            public Class getColumnClass(int column)
            {
                if (column == 6)
                    return Integer.class;
                else
                    return String.class;
            }

        };

        table.setModel(model);
        model.setColumnIdentifiers(colContent);


        String firstLine = br.readLine().trim();
        Object[] tableLines = br.lines().toArray();
        for(int i = 0; i < tableLines.length; i++)
        {
            String line = tableLines[i].toString().trim();
            String[] dataRow = line.split(",");
            model.addRow(dataRow);
        }

这是我使用过的排序器,它可以工作,但显示的值类似于1,10,15,3,5,8

         TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(table.getModel());
         ArrayList<SortKey> sortKeys = new ArrayList<RowSorter.SortKey>();
         sortKeys.add(new RowSorter.SortKey(6, SortOrder.ASCENDING));
java jtable windowbuilder defaulttablemodel tablerowsorter
1个回答
0
投票

用以下内容更改最后一部分:

TableRowSorter<TableModel> sorter = new TableRowSorter<>(table.getModel());
table.setRowSorter(sorter);
List<RowSorter.SortKey> sortKeys = new ArrayList<>();

int columnIndexToSort = 1; // choose the sorting column
sortKeys.add(new RowSorter.SortKey(columnIndexToSort, SortOrder.DESCENDING));

sorter.setSortKeys(sortKeys);
sorter.sort();
© www.soinside.com 2019 - 2024. All rights reserved.