У меня есть javafx TableView, и я хочу знать, когда изменяется порядок сортировки столбца. Я добавил слушателя к методу getSortOrder
. Однако он срабатывает только при сортировке по возрастанию и никогда при сортировке по убыванию .
Чтобы проверить это, я использовал пример кода
У кого-нибудь есть идея, почему это не срабатывает? Нужно ли еще что-то добавить?
Данные в таблице находятся в SortedList
, и я добавил слушателя следующим образом:
personTable.getSortOrder().addListener(this::onColumnSortOrderChanged);
private void onColumnSortOrderChanged(ListChangeListener.Change<? extends TableColumn<Person, ?>> change) {
boolean changed = false;
while (change.next()) {
changed = true;
}
if (changed) {
if (change.getList().isEmpty()) {
System.out.println("observable is empty");
} else {
TableColumn<Person, ?> column = change.getList().get(0);
System.out.println("Sorted: " + column.getText() + " sort type " + column.getSortType());
}
}
}