我必须根据显示的数据更改 TableCell 的样式类,例如:如果一个单元格的值在两个连续行中相同,则必须突出显示该单元格(即:背景红色)。这必须同时向表中添加数据和按任何列排序。
为此,在排序时,我添加了一个侦听器,tableview.getSortOrder()
并在其onChange
方法中添加了执行上述操作的逻辑。举例:
public void onChanged(ListChangeListener.Change<? extends TableColumn> change) {
if (change.getList().size() > 0) {
Platform.runLater(new Runnable() {
@Override
public void run() {
/* set some css on tableview cells */
}
});
}
}
问题是这样做的 css 更改不会立即应用于表的下一次刷新。我的嫌疑人正在内部进行此操作,Platform.runLater
但我需要在更改样式之前对数据进行应有的排序。
我做错什么了吗?是否存在更好的方法来做我描述的事情?