2017-12-18 338 views
0

我有一个问题,有关排序jTable1我看了几个已经问的问题在这个论坛上的这个问题,但没有答案似乎适用于我,我如何设置数字序列工作一个正常的订单,而不是去1,10,11 ... 2,20,21,... 3,..等等。我如何修改这段代码jTable1.setAutoCreateRowSorter(true);,因为它似乎没有正常工作。这是我正在使用的当前代码。jTable。行排序()从文本文件

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

将序列转换为数值,'String'根据其文本表示进行排序,这是一个非常常见的问题 – MadProgrammer

回答

0

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

有关如何进行这种转换的例子,这里是如何使用一些代码为出发点

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

希望这有助于一个String []转换为整数[]!