Окрашивание строк в TableView JavaFX
При нажатии на строку таблицы, строка должна подсвечиваться в зеленый цвет, если нажать еще раз - зеленый цвет должен убраться. Все вроде бы работает хорошо, но когда в таблице появляется много строк с возможностью прокрутки таблицы, то происходит какой-то хаос. Выделила последнюю строку, прокручиваю и замечаю, что выделилась и еще одна вначале таблицы, прокручиваю обратно, выбранная строка перестала подсвечиваться, а вместо нее подсвечивается соседняя...
table.setRowFactory(tv -> {
TableRow<Data> row = new TableRow<>();
row.setOnMouseClicked(event -> {
if (!row.isEmpty()) {
Data data = row.getItem();
if (selectedRows.contains(data)) {
selectedRows.remove(data);
row.setStyle("");
} else {
selectedRows.add(data);
row.setStyle("-fx-background-color: green;");
}
}
});
return row;
});