我需要在tableview中只显示带有红色文本的几行,但没有结果!
我的代码:
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;
}
任何人都可以查看或建议一些更简单的方法吗?
答案 0 :(得分:1)
您在TableRow
上设置了伪类,而不在.text
节点上设置伪类。因此,伪类选择器需要与选择TableRow
的选择器组合,而不是选择文本元素的选择器:
.table-view .table-row-cell:warn .text {