2016-11-26 15 views
1

未知のSQLクエリの結果セットを、テーブル形式のjavafx TextAreaに配置しようとしています。私はそれを完璧にやっていましたが、私はアライメントに関して小さな問題がありました。 Here is the result that i get文字列の整列

は、ここに私の私のコードです:

 private void querySubmitButtonClicked() { 
     try { 
     String q = queryTF.getText(); 
     PreparedStatement ps = getConnection().prepareStatement(q); 
     if ((q.startsWith("INSERT")) || (q.startsWith("UPDATE")) || (q.startsWith("DELETE"))) 
      ps.executeUpdate(); 
     else 
      queryResult = ps.executeQuery(); 

     ResultSetMetaData rsmd = queryResult.getMetaData(); 
     int numberOfColumns = rsmd.getColumnCount(); 
     StringBuilder sb = new StringBuilder(); 
     String columnsNames = ""; 

     for (int i = 1; i <= numberOfColumns; i++) 
      columnsNames += String.format("%-40s", rsmd.getColumnName(i)); 

     sb.append(columnsNames + "\n"); 
     while (queryResult.next()) { 
      String columnsValues = ""; 
      for (int i = 1; i <= numberOfColumns; i++) { 
       columnsValues += String.format("%-40s", queryResult.getString(i)); 
      } 
      sb.append(columnsValues + "\n"); 
     } 
     TextArea resultArea = new TextArea(sb.toString()); 
     resultArea.setEditable(false); 
     resultArea.setFocusTraversable(false); 
     resultArea.setStyle("-fx-font-size: 10"); 
     expertPane.setCenter(resultArea); 

    } catch (SQLException e) { 
     expertPane.setCenter(msgLabel); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

私は%の40代を使用して、右allignemntを使用してみましたが、それは正しくもallign wouldntは。私も%100sと%-100sを使って試してみました。 助けてください?

+0

モノスペースフォントを使用することは可能でしょうか? MonacoやCourier Newのように。 –

+0

@ OleV.V。フォントをCourier Newに変更すると、私の問題が解決しました!ありがとうございました! –

答えて

0

私はコメントで示唆したように、MonacoやCourier Newのような固定幅フォント(固定幅フォント)を使用します。これはそれを行う必要があります。

FXは分かりませんが、TextAreaの代わりにTableViewを使用することもできます。

+0

私は自分のプロジェクトでテーブルビューをたくさん使っていました。しかし、私はデータの型、数、サイズを知っていないので、テーブルビューでこれを行うことは非常に複雑で不可能です。ユーザーのクエリによって異なります。 とにかく、問題を解決したフォントを変更していただきありがとうございます! –

+0

ええ、私も 'TableView'が複雑な選択肢かもしれないと思っていました。完全性のために言及したかっただけで、おそらくそれはまったく関連性がありませんでした。 –