2014-10-07 38 views
0

假設我在TreeTableView中有2列,現在我想在第一列中添加一個字符串/標籤,在另一列中添加一個ProgressBar。我將如何完成這樣的事情?JavaFX:將UI控件添加到TreeTableView

真的很感謝任何幫助!

+0

請參閱http://stackoverflow.com/questions/16721380/javafx-update-progressbar-in-tableview-from-task,它對「TableView」做相同的處理。 – 2014-10-07 14:01:42

回答

0

正如James_D正確指出的那樣,您可以使用ProgressBarTreeTableCell作爲具有ProgressBars的列。有內部支撐用於諸如TextFieldCheckBox

對於其他UI控件可以創建自定義TreeTableCell 如圖一些其他UI控件:

private class ProgressCell extends TreeTableCell<Employee, String> { 

    final ProgressBar progress = new ProgressBar(); 

     ProgressCell() { 
     } 

     @Override 
     protected void updateItem(String t, boolean empty) { 
      super.updateItem(t, empty); 
      if (!empty) { 
       setGraphic(progress); 
      } 
    } 
} 

然後分配CellFactory到第二列

secondCol.setCellFactory(
     new Callback<TreeTableColumn<Employee, String>, TreeTableCell<Employee, String>>() { 
      @Override 
      public TreeTableCell<Employee, String> call(
       TreeTableColumn<Employee, String> param) { 
        return new ProgressCell(); 
       } 
}); 

其中Employee是在其上TreeTableView建

POJO類
+1

總是檢查[API](http:// docs .oracle.com/javase/8/javafx/api/javafx/scene/control/cell/ProgressBarTreeTableCell.html); – 2014-10-07 14:14:28

+1

'ProgressBarTreeTableCell',這很酷。讓OP將這個用於那些CellFactories不是由JavaFX提供的控件;-) – ItachiUchiha 2014-10-07 14:26:51