将父项的颜色添加到他的项中

时间:2018-08-25 09:20:33

标签: java css javafx treeview

我想为不同的项目设置不同的颜色。特别是对于不同的父母,我将使用不同的颜色,并且对于每个父母,他的项目都将使用相同的颜色。重要的是,当我用鼠标选择一个项目时,颜色的状况不要改变。

我通过使用CSS找到了这样的部分解决方案:

A

在外部CSS中,我有这个:

List<String> allTreeItemStyles = Arrays.asList("style1", "style2", "style3"); 
TreeView<MyTreeType> tree = new TreeView<>();
tree.setCellFactory(tv ->  new TreeCell<MyTreeType>() {
    @Override
    public void updateItem(MyTreeType item, boolean empty) {
        super.updateItem(item, empty);
        getStyleClass().removeAll(allTreeItemStyles);
        if (empty) {
            setText("");
        } else {
            setText(...); // appropriate text for item
            String styleClass = ... ; // choose style class for item
            getStyleClass().add(styleClass);
        }
    }
});

0 个答案:

没有答案