JavaFX: Add UI control to TreeTableView

后端 未结 1 2066
执念已碎
执念已碎 2020-12-07 06:12

Let\'s say i have 2 columns in a TreeTableView and now i want to add a string/Label in the first column and a ProgressBar in the other one. How would i accomplish something

相关标签:
1条回答
  • 2020-12-07 06:23

    As correctly pointed out by James_D, you can use ProgressBarTreeTableCell for a column with ProgressBars. There is internal supports for some other UI controls such as TextField, CheckBox etc.

    For other UI controls you can create a Custom TreeTableCell as shown:

    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);
                }
        }
    }
    

    and then assign a CellFactory to the second column

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

    where Employee is the POJO class on which the TreeTableView is built

    0 讨论(0)
提交回复
热议问题