2017-01-27 47 views
0

我有一個電影類。演員保存在String []中。我使用SceneBuilder創建了一個GUI。我設置每個TC的值,就像這樣:JavaFX:如何在TableColumn中顯示String []的內容?

tableDirector.setCellValueFactory(new PropertyValueFactory<>("Director")); 
    tableActors.setCellValueFactory(new PropertyValueFactory<>(("actors"))); 

,對所有非集合東西的作品,但我不能爲所有的愛是神聖的計算出如何把幾個字符串從一個String []在一個單獨的列中。我錯過了什麼嗎?

回答

0

假設你沒有顯示的代碼是正確的,你可以做

tableActors.setCellFactory(tc -> new TableCell<Movie, String[]>() { 
    @Override 
    protected void updateItem(String[] actors, boolean empty) { 
     super.updateItem(actors, empty); 
     if (empty || actors == null) { 
      setText(null); 
     } else { 
      setText(String.join(", ", actors)); 
     } 
    } 
}); 

一個更復雜的細胞工廠可能產生顯示的演員在一個ListView細胞,或一些類似的選項。

請注意,cellFactory是您已經定義的cellValueFactory的補充。

+0

謝謝!那正是我所期待的。我忘記了重寫updateItem。那是缺失的環節,你是救星! – PancakeNinja

相關問題