Я бы хотел установить разные цвета для разных предметов. В частности, у меня будет разный цвет для разных родителей, и для каждого родителя установите одинаковый цвет для своих предметов. Важно, чтобы ситуация с цветом не менялась, когда я выбираю мышью элемент.
Я нашел частичное решение, подобное этому, с использованием 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);
}
}
});
Во внешнем css у меня это:
.tree-cell.style1 {
/* ... */
}
.tree-cell.style2 {
/* ... */
}
/* etc */