Стили ячеек JavaFX - PullRequest
       2

Стили ячеек JavaFX

0 голосов
/ 29 октября 2018

Я посмотрел на другие вопросы, но они не удовлетворяют мой вопрос

Я хочу, чтобы определенные ячейки имели красный цвет в моем дереве, и я использую

public void updateView()
{
    treeView.setCellFactory(tv -> new TreeCell<String>() {
        @Override
        protected void updateItem(String item, boolean empty) {
            super.updateItem(item, empty);
            if (empty || item == null) {
            }
            else {
                for(ArrayList<TreeItem> x :Signals)
                {
                    for(TreeItem z: x)
                    {
                        if(z.getValue().equals(item))
                        {
                            setText(item);
                            setStyle("-fx-text-fill: red");
                        }
                        else{ setText(item);}
                    }
                }
            }
        }
    });
}

Я попытался отформатировать его, у меня просто не получается, извините. Что происходит, это портит мою таблицу treeView. Смотрите фотографии: https://imgur.com/a/8tf76xn

Есть идеи, почему?

1 Ответ

0 голосов
/ 29 октября 2018

Обратите внимание, что ячейки используются повторно; вам нужно удалить стиль и / или текст из ячейки, если ячейке присвоен неотмеченный элемент / ячейка становится пустой. Кроме того, текст должен быть назначен только один раз:

treeView.setCellFactory(tv -> new TreeCell<String>() {
    @Override
    protected void updateItem(String item, boolean empty) {
        super.updateItem(item, empty);

        setStyle(null);
        if (empty || item == null) {
            setText("");
        } else {
            setText(item);

            // apply style, if a TreeItem containing the same value as the item is found in Signals
            outer: for(List<TreeItem> x : Signals) {
                for(TreeItem z: x) {
                    if(z.getValue().equals(item)) {
                        setStyle("-fx-text-fill: red");
                        break outer;
                    }
                }
            }
        }
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...