Обработчик событий при удалении строки из табличного представления

мне нужно знать, как поймать событие, которое происходит, когда строка удаляется из TableView и индекса строки. В этот момент, когда строка удаляется из таблицы, вызывается метод TableView.getSelectionModel().clearSelection(). Но я хочу выбрать последний индекс, доступный в представлении таблицы.

Tableview.getSelectionModel().clearAndSelect() не подходит, потому что иногда строка удаляется автоматически.

С Уважением


person Pavel Delgado    schedule 19.04.2016    source источник


Ответы (1)


Для таблицы с типом, например, Person:

import javafx.collections.ListChangeListener.Change ;

// ....

TableView<Person> table = ... ;

table.getItems().addListener((Change<? extends Person> c) -> {
    while(c.next()) {
        if (c.wasRemoved()) {
            int numRemoved = c.getRemoved().size();
            int index = c.getFrom();
            System.out.println(numRemoved + " items removed from table at index "+index);
        }
    }
});

ListChangeListener.Change документация описывает возвращаемые значения. на c.getFrom(), c.getTo(), c.wasRemoved(), c.getAdded() и т. д. при различных сценариях.

person James_D    schedule 19.04.2016
comment
Это работает, но правильным выражением было table.getItems().addListener((ListChangeListener.Change‹? extends Person› c) -> {}); пожалуйста, отредактируйте. С Уважением. - person Pavel Delgado; 20.04.2016
comment
Хорошо, я получил это. Спасибо !! - person Pavel Delgado; 20.04.2016