2017-12-18 15 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

シーケンスを数値に変換します。文字列はテキスト表現に基づいてソートされています。これは非常に一般的な問題です – MadProgrammer

答えて

0

@MadProgrammerは正解であるコメントを残しました。今使用しているString []とは対照的に、数値の行(Integer []、Float []、Double []など)を挿入する必要があります。この変換を行う方法の例については、ここでは整数[]出発点として、あなたのコードの一部を使用して

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

に[]文字列を変換する方法

をだ、この情報がお役に立てば幸い!

関連する問題