JavaFX:将UI控件添加到TreeTableView

时间:2014-10-07 10:08:46

标签: java user-interface javafx controls treetableview

假设我在TreeTableView中有2列,现在我想在第一列中添加字符串/ Label,在另一列中添加ProgressBar。我将如何完成这样的事情?

真的很感激任何帮助!

1 个答案:

答案 0 :(得分:0)

正如James_D正确指出的那样,您可以将ProgressBarTreeTableCell用于包含ProgressBars的列。其他一些UI控件有内部支持,例如TextFieldCheckBox等。

对于其他UI控件,您可以创建自定义TreeTableCell  如图所示:

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类