2017-12-18 163 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 []轉換爲整數[]!