JTable中。从文本文件中排序()

时间:2017-12-18 01:00:50

标签: java sorting netbeans jtable

我在jTable1排序方面遇到了问题我在这个论坛上看了几个关于这个问题的已经问过的问题,但似乎没有答案对我有用,我怎样才能设置正常工作的数字序列顺序而不是去1,10,11 ...... 2,20,21,... 3,..等等。我怎么能修改这段代码jTable1.setAutoCreateRowSorter(true);,因为它似乎没有工作正常。这是我正在使用的当前代码。

try {
        FileReader fR = new FileReader("table.txt");
       BufferedReader br = new BufferedReader(fR);
        String firstLine = br.readLine().trim();
        String[] columnsName = firstLine.split(",");
        DefaultTableModel model = (DefaultTableModel)jTable1.getModel();
        model.setColumnIdentifiers(columnsName);
        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);

        }
                    jTable1.setAutoCreateRowSorter(true);

    } catch (IOException ex) {
        Logger.getLogger(NewJFrame3.class.getName()).log(Level.SEVERE, null, ex);
    } 

1 个答案:

答案 0 :(得分:0)

@MadProgrammer发表评论是正确的答案。你需要插入一行数值(即 - Integer [],Float [],Double []等),而不是你现在正在使用的String []。

有关如何进行此转换的示例,以下是使用某些代码作为起点将String []转换为Integer []的方法

String line = tableLines[i].toString().trim();
String[] dataRow = line.split("/");
int dataRowLength = dataRow.length;
Integer[] dataRowIntegers = new Integer[dataRowLength];
for(int i = 0; i < dataRowLength; i++){
    dataRowIntegers[i] = Integer.valueOf(dataRow[i]);
}
model.addRow(dataRowIntegers);

希望这有帮助!