2016-11-01 8 views
0

私はListViewを持っており、一番上の項目は次のように見えます。同じように間隔を置いて文字列を整列します。

ID   FIRST NAME   LAST NAME  DOB   SS   PHONE NUMBER 

は現在、これらの項目の下で、私は実際にこの情報

ID   FIRST NAME   LAST NAME  DOB   SS    PHONE NUMBER 
1   Paul    Lopez   some date  some number  some number 

私は、文字列の長さがないように、これらの項目を整列する方法を見つけ出すように見えるカントが含まれている他の項目を配置したいですアラインメントを有効にします(つまり、2つの文字をポールに追加すると、前方のすべてを前方に押すことはありません)。ここに私が持っているものがあります。

String headerString = ID   FIRST NAME   LAST NAME  DOB   SS    PHONE NUMBER; 
private void updateEmployees(){ 
    employeeLV.getItems().clear(); 
    employeeLV.getItems().add(headerString); 
    for (EmployeeInfo employee : dateBaseHelper.getAllEmployees()){ 
     employeeLV.getItems().add(
       employee.getId() + spacer 
       + employee.getfName() + spacer 
       + employee.getlName() + spacer + spacer 
       + employee.getDob() + spacer + spacer 
       + employee.getSsNum() + spacer + spacer 
       + employee.getPhoneNumber()); 
    } 
} 

私はこれが悪いの試みであると私はあなたたちを助けることを願って実現します。

+0

あなたは 'printf'を使用していますか?あなたのためにパディングとアライメントを処理します。 – 4castle

+0

私はprintfに精通していませんか? – paul

+0

@ 4castleコードがアップしています。 – paul

答えて

1

必要なものはTableViewです。 TableViewを使用すると、自動整列された列を作成できます。したがって、(異なるタイプの)値を挿入するだけで、JavaFXがあなたのために整列させることができます。

TableViewsについては、this tutorialをご覧ください。

SimpleIntegerProperty,SimpleStringPropertySimpleObjectPropertyをint、String、Dateではなくフィールドとして実装することを検討してください。これは、TableViewを使用する方がずっと簡単です。

関連する問題