Окрашивание строк в 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;
});

Ответы (0 шт):