Вы можете переключить стиль в методе updateItem()
в TableCell
, подписавшись на выбранное свойство:
String style = "-fx-background-color: rgba(0, 128, 0, 0.3);";
setStyle(style);
selectedProperty().addListener((observableValue, value, old) -> {
if (value) {
setStyle(style);
} else {
setStyle(null);
}
});
Или используя файл CSS:
.table-cell {
-fx-background-color: rgba(0, 128, 0, 0.3);
}
.table-cell:selected {
-fx-background-color: inherit;
}
Это закрасит все ячейки в таблице.Если вы хотите закрасить только один столбец, я бы порекомендовал использовать для этого специальный класс:
getStyleClass().add("customhighlight");
Изменить файл CSS следующим образом:
.table-cell.customhighlight {
-fx-background-color: rgba(0, 128, 0, 0.3);
}
.table-cell.customhighlight:selected {
-fx-background-color: inherit;
}
Все решения используют выбор по умолчаниюстиль для выбранной ячейки, сбросив цвет фона.Результат выглядит так: