【发布时间】:2020-03-19 15:04:46
【问题描述】:
论坛,
我创建了一个表格视图。每一行都填充了每个“Steckerpin”对象给出的信息。使用 RowFactory 我根据每个对象(“Steckerpin”)的属性“Zusand”的值对每行的背景进行着色。
问题是,当表格变得可滚动时,新出现的行的颜色顺序与开头的颜色行相似。但是这些行不应该被着色,因为它们的属性“Zusand”没有改变。
New appearing rows after scrolling
如果我滚动到表格的末尾,错误颜色的行会再次变为白色。
我已经读到,将 tableviews 与 RowFactory 结合使用是一个常见问题,因为一旦开始滚动,就会重复使用这些行。
这是我使用 RowFactory 的代码:
durchgangsTable.setRowFactory(tv -> new TableRow<Steckerpin>() {
@Override
public void updateItem(Steckerpin item, boolean empty) {
super.updateItem(item, empty);
if (item == null || empty) {
setGraphic(null);
setStyle("");
} else if (item.getZustand().equals(okZustString)) {
pseudoClassStateChanged(PseudoClass.getPseudoClass("ok"), true);
} else if (item.getZustand().equals(fehlerZustString)) {
pseudoClassStateChanged(PseudoClass.getPseudoClass("error"), true);
} else if (item.getZustand().equals(prüfZustString)) {
pseudoClassStateChanged(PseudoClass.getPseudoClass("pending"), true);
}
}
});
我已经阅读了几个类似的问题,但我找不到我的问题的解决方案。因此,我将非常感谢您的帮助。
【问题讨论】:
标签: javafx scroll tableview background-color tablerow