2017-03-03 4 views
0

私はフォロワーhttp://code.makery.ch/library/javafx-8-tutorial/part2/を持っており、ラムダを使用してTableColumnの中の値を設定するコードがあります:のJavaFX:1のTableColumn内の2つの値

firstNameColumn.setCellValueFactory(cellData -> cellData.getValue().firstNameProperty()); 
lastNameColumn.setCellValueFactory(cellData -> cellData.getValue().lastNameProperty()); 

しかし、何をすべきか私は1つの列のfullNameを持っており、firstNameColumnとlastNameColumnを統一したい場合1つのfullNameに?

ありがとうございました。

答えて

4

これは、両方の最初と最後の名前に依存StringBindingを作成することによって行うことができます。

fullNameColumn.setCellValueFactory(cellData -> Bindings.createStringBinding(
    () -> cellData.getValue().getLastName() + ", " + cellData.getValue().getFirstName(), 
    cellData.getValue().firstNameProperty(), 
    cellData.getValue().lastNameProperty() 
)); 
+1

のために設計されたPerson was''rまたはcellData-> cellData.getValue()。firstNameProperty()。concat( " ).concat(cellData.getValue()。lastNameProperty()) '(それがどんなクリーナーであっても本当にわかりません...) –

0

foolowingコードは動作します:

fullNameColumn.setCellValueFactory(cellData -> cellData.getValue().firstNameProperty() + " " + cellData.getValue().lastNameProperty()); 
+0

申し訳ありませんが、このコードは実際には適切ではありません。ファビアンの答えは良いです – brack11

+1

それはコンパイルされますか?ラムダ式は 'String'と評価されます:ObservableValue が必要です。 –

+0

はい、あなたは正しいです。私は別のアプローチで異なるプロジェクトを持っていますが、これは別の物語ですfullNameColumn.setCellValueFactory(cellData ->new SimpleStringProperty (cellData.getValue().firstName() + " " + cellData.getValue().lastName()));: – brack11

関連する問題