Himani Virmani Ответов: 0

Формат отдельных treeitems javafx


Я не могу понять, как использовать метод setCellFactory для форматирования отдельных TreeItems.

У меня есть класс

public class Bag {
public String caption,assignment="";
Boolean eval;
public Set<Vertex> Nodes = new HashSet<Vertex>();
public Vector<Bag> ChildBags = new Vector<Bag>();

 @Override
public String toString()
{
    return assignment+ " " +caption;
}
}

Вот мой css файл:

.true{
    -fx-text-fill:#33cc00 ;
}
.assignment{
    -fx-text-fill: #0033cc
}

У меня есть дерево мешков. Я хочу окрасить в зеленый цвет заголовок ( возвращает метод toString ()) всех тех узлов, свойство eval которых имеет значение true. а строка присваивания, которую возвращает метод toString() для всех узлов, должна быть синей.

Как я могу это сделать?

Спасибо.

Что я уже пробовал:

TreeView<Bag> treeView = new TreeView(root);

treeView.getStylesheets().add("format.css");

PseudoClass childPseudoClass = PseudoClass.getPseudoClass("child");

treeView.setCellFactory(tv -> new TreeCell<Bag>() {

    @Override
    protected void updateItem(Bag item, boolean empty) {
        super.updateItem(item, empty);
        if (empty || item == null) {

        } else {
            if(item.eval==true){
            //how to assign different style to different components
            }


        }

}
});

0 Ответов