我想为不同的项目设置不同的颜色。特别是对于不同的父母,我将使用不同的颜色,并且对于每个父母,他的项目都将使用相同的颜色。重要的是,当我用鼠标选择一个项目时,颜色的状况不要改变。
我通过使用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);
}
}
});