【问题标题】:jTable. row sorting() from text filej表。来自文本文件的行排序()
【发布时间】:2018-05-31 08:25:00
【问题描述】:

我在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);
    } 

【问题讨论】:

  • 将序列转换为数值,String是根据它的文本表示排序的,这是一个很常见的问题

标签: java sorting netbeans jtable


【解决方案1】:

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

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2013-03-03
    • 2021-09-28
    • 1970-01-01
    • 2015-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-23
    • 2011-10-15
    相关资源
    最近更新 更多