在JavaFx中保留TableView的排序列后出现java异常
在重新加载表中的数据后,我试图保留JavaFx Tableview排序顺序。 我遵循下面提到的链接。 Javafx: Re-sorting a column in a TableView
TableView rooms;
...
TableColumn sortcolumn = null;
SortType st = null;
if (rooms.getSortOrder().size()>0) {
sortcolumn = (TableColumn) rooms.getSortOrder().get(0);
st = sortcolumn.getSortType();
}
然后,在更新TableView中的数据后,必须恢复丢失的排序列状态并执行排序
if (sortcolumn!=null) {
rooms.getSortOrder().add(sortcolumn);
sortcolumn.setSortType(st);
sortcolumn.setSortable(true); // This performs a sort
}
一切正常。。。排序顺序被保留,但控制台在“rooms.getSortOrder().add(sortcolumn);”处显示异常
Exception in thread "JavaFX Application Thread" java.lang.IndexOutOfBoundsException
at com.sun.javafx.scene.control.ReadOnlyUnbackedObservableList.subList(ReadOnlyUnbackedObservableList.java:136)
at javafx.collections.ListChangeListener$Change.getAddedSubList(ListChangeListener.java:242)
at javafx.scene.control.TreeTableView$TreeTableViewArrayListSelectionModel.handleSelectedCellsListChangeEvent(TreeTableView.java:3244)
at javafx.scene.control.TreeTableView$TreeTableViewArrayListSelectionModel.access$2000(TreeTableView.java:2289)
at javafx.scene.control.TreeTableView.sort(TreeTableView.java:1817)
at javafx.scene.control.TreeTableView.doSort(TreeTableView.java:1855)
at javafx.scene.control.TreeTableView.lambda$new$114(TreeTableView.java:383)
at com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329)
at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:205)
at javafx.collections.ModifiableObservableListBase.add(ModifiableObservableListBase.java:155)
at java.util.AbstractList.add(AbstractList.java:108)
at com.honda.galc.client.qi.repairentry.RepairEntryController.loadInitialData(RepairEntryController.java:260)
at com.honda.galc.client.qi.repairentry.RepairEntryController.markDefectAsActualProblem(RepairEntryController.java:529)
at com.honda.galc.client.qi.repairentry.RepairEntryController.addRepairMethods(RepairEntryController.java:184)
你知道为什么会出现这样的例外吗
共 (0) 个答案