有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JTable将整数排序为字符串

因此,我有一个JTable,其中填充了来自文本文件的数据,我需要根据第6列“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));

共 (0) 个答案