TableView
окрашивает фон его строк из modena.css
, поэтому вы можете переопределить это свойство, используя встроенный стиль.Свойство -fx-text-fill
устанавливается для TableCell
s, и поэтому значения, унаследованные от TableRow
, не используются.
Я рекомендую использовать таблицу стилей CSS самостоятельно и применять псевдокласс к строкам
final PseudoClass green = PseudoClass.getPseudoClass("green");
tablename.setRowFactory(tv -> new TableRow<ClassName>() {
@Override
public void updateItem(ClassName item, boolean empty) {
super.updateItem(item, empty);
boolean gr = (item != null) && item.gettest().equals("a");
pseudoClassStateChanged(green, gr);
}
});
Таблица стилей CSS (должна применяться к TableView
, предку или сцене)
.table-row-cell:filled {
-fx-background-color: #efe939;
}
.table-row-cell:filled:green {
-fx-background-color: #38ee00;
}
.table-row-cell:filled .table-cell {
-fx-text-fill: red;
}
.table-row-cell:filled:green .table-cell {
-fx-text-fill: green;
}