【发布时间】:2018-09-10 09:50:01
【问题描述】:
我有一个 javafx TableView,我想知道列的排序顺序何时发生变化。我在getSortOrder 方法中添加了一个监听器。但是,它仅在我对 升序 进行排序时触发,而在我对 降序 进行排序时不会触发。
为了测试这个我用了这个example code
有谁知道为什么这不会触发?我还需要添加其他东西吗?
表中的数据在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());
}
}
}
【问题讨论】:
标签: javafx observable javafx-tableview