JTable сортирует целые числа как строки - PullRequest
0 голосов
/ 17 апреля 2020

Итак, у меня есть JTable, заполненный данными из текстового файла, мне нужно отсортировать таблицу по 6-му столбцу «Запас»

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));
...