Цвет текста строки просмотра таблицы Java не изменяется с помощью псевдо-класса

Мне нужно показать только несколько строк с красным текстом в виде таблицы, но без результата!

Мой код:

PseudoClass pClass = PseudoClass.getPseudoClass("warn");
myTable.setRowFactory(new Callback<TableView<MyData>, TableRow<MyData>>() {

                    @Override
                    public TableRow<MyData> call(TableView<MyData> param) {
                        return new TableRow<MyData>() {
                            @Override
                            protected void updateItem(MyData item, boolean empty) {
                                super.updateItem(item, empty);
                                if (item == null || empty) {
                                    return;
                                }
                                setItem(item);
                                pseudoClassStateChanged(pClass, item.getWarning());
                            }
                        };
                    }
                });

CSS

.table-view .table-row-cell .text{
    -fx-fill: black; 
}

.table-view .table-row-cell .text:warn{
    -fx-fill: red; 
}

Может кто-нибудь рассмотреть это или предложить какой-то более простой способ?

1 ответ

Вы устанавливаете псевдокласс на TableRowне на .text узлы. Поэтому селектор псевдокласса должен сочетаться с селектором, выбирающим TableRow, а не с помощью селектора, выбирающего текстовый элемент:

.table-view .table-row-cell:warn .text {
Другие вопросы по тегам