【发布时间】:2013-11-06 15:18:07
【问题描述】:
使用JavaFX 8 的新特性SortedList,绑定到一个TableView 排序比较器。 我的实现看起来像:
SortedList<T> sorted = myObservableList.sorted();
myTable.setItems(sorted);
sorted.comparatorProperty().bind(myTable.comparatorProperty());
myObservableList 在启动时是一个空的ObservableList。
我通过 FXML 设置了myTable 比较器属性。
我的用例是:
- 用数据填充
myObservableList(排序和显示机器人工作正常) - 清除
myObservableList-> 抛出带有负索引的java.lang.ArrayIndexOutOfBoundsException - 用一些其他数据重新填充
myObservableList
我不知道为什么清除支持列表myObservableList 会引发错误。为什么 sortedlist 在清除时正在寻找索引?
我先尝试清除排序列表,但不支持此操作。
【问题讨论】:
-
在 JavaFX 8.0 中,当我尝试将所有内容添加到 SortedList 时,我也会遇到错误,这些错误会一直返回到 AbstractList。我的解决方案是保留对位于 SortedList 基础的 ObservableList 的引用,并改为添加到该列表中,这会正确传播到 SortedList。听起来确实像一个 FX 错误。
标签: java javafx javafx-8 sortedlist