Данные выгружаются с БД, поэтому нашел такое вот решение выгрузки данных и изменение цвета.
private void styleRowColor() {
Callback<TableColumn<ModelTableDriversLogArea, String>, TableCell<ModelTableDriversLogArea, String>> cellFactory
=
new Callback<TableColumn<ModelTableDriversLogArea, String>, TableCell<ModelTableDriversLogArea, String>>() {
@Override
public TableCell<ModelTableDriversLogArea, String> call(final TableColumn<ModelTableDriversLogArea, String> param) {
final TableCell<ModelTableDriversLogArea, String> cell = new TableCell<ModelTableDriversLogArea, String>() {
@Override
public void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
if (empty) {
setGraphic(null);
setText(null);
} else {
setText(item);
TableRow<ModelTableDriversLogArea> row = getTableRow();
if (row.getItem().getDivision().equals("-")) {
row.getStyleClass().clear();
setStyle("-fx-background-color: green");
}
}
}
};
return cell;
}
};
col_divisionDriversAreaLog.setCellFactory(cellFactory);
}
Проблема в том, что когда скролить вниз, то произвольные ячейки в таблице начинают окрашиваться в зеленый цвет. При этом, если скролить вверх и вниз, то в итоге весь столбец с данными закрасится в зеленый. Если ли возможность что-то изменить, или же другие варианты изменения цвета в зависимости от данных в табличке?