【问题标题】:Finding the Index of an Item that was already Deleted查找已删除项目的索引
【发布时间】:2014-08-08 09:54:40
【问题描述】:

我有一个原始的ObservableList<PlanItem> src

我从这个src 创建一个SortedList,并将其命名为sortedList

sortedList,我想创建一个ObservableList<XYChart.Data>,称为dataSetsortedListdataSet 将始终具有相同的大小。 sortedListPlanItemsdataSetXYChart.Data 代表那些PlanItems 的节点。

如果从src 中删除PlanItemsortedList 也会将其删除。同时,我想从dataSet中删除其各自的XYChart.Data节点。

问题是,我不知道刚刚从sortedList 中删除了什么。我找不到确定刚刚删除的索引的方法。在不知道这个索引的情况下,我无法从dataSet 中删除相应的XYChart.Data 节点。

【问题讨论】:

  • 如何从 sortedList 中删除项目?不能同时删除吗?
  • 项目已从原始列表中删除。这会向 SortedList 发出通知,同时将其删除。不幸的是,我必须手动找到一种向数据集“发出通知”的方法。

标签: java javafx javafx-8 observablelist


【解决方案1】:

这是EasyBind 框架的一个非常好的用例。您只需创建一个从sortedListdataSet 的映射,它就会为您处理所有添加和删除操作。

代码看起来像

ObservableList<XYChart.Data> dataSet = EasyBind.map(sortedList, this::makeChartData) ;

// ...

private XYChart.Data makeChartData(PlanItem planItem) {
    // Just return a XYChart.Data corresponding to planItem
}

【讨论】:

  • 谢谢。我真的可以使用它。
猜你喜欢
  • 2011-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-04
  • 2010-10-28
  • 1970-01-01
  • 2020-11-09
  • 1970-01-01
相关资源
最近更新 更多