Мне нужно изменить класс стиля TableCell в функции отображаемых данных, например: если значение ячейки одинаково в двух смежных строках, ячейка должна быть подсвечена (т.е.: красный фон). Это должно работать как с добавлением данных в таблицу, так и с сортировкой по любому столбцу.JavaFX, change css 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
, но мне нужно, чтобы данные были отсортированы так, как они должны быть, перед сменой стилей.
Я сделал что-то не так? Существует ли лучший способ сделать то, что я описал?
Просто попробовал, никаких изменений в поведении, пока не описано. – Luca