【发布时间】:2018-12-23 14:27:14
【问题描述】:
我有两个 ObservableList,其中一个包含一些歌曲,另一个包含与歌曲相关的目录。
我希望在从其 ObservableList 中删除一个目录时,将包含该目录的所有歌曲从其 ObservableList 中删除。 但是当我这样做时,只删除了奇数 id 的歌曲和偶数 id 的歌曲!!!
我的 ObservableLists 在不同的类中,“控制器”是包含 ObservableLists 的类的对象。 这是我的代码:
private static ObservableList<SongModel> songModelObservableList = FXCollections.observableArrayList();
private static ObservableList<Directory_Model> directoryModelObservableList = FXCollections.observableArrayList();
现在是我删除目录的代码:
for (int j = 0 ; j < controller.getSongModelObservableList().size() ; j++)
if (controller.getSongModelObservableList().get(j).getPath().contains(controller.getDirectoryModelObservableList().get(i).getPath())){
controller.getSongModelObservableList().remove(controller.getSongModelObservableList().get(j));
}
controller.getDirectoryModelObservableList().remove(controller.getDirectoryModelObservableList().get(i));
这里。在第一个 if 中,我检查哪个 songModel(我的歌曲类)具有将其从 songObservableList 中删除的目录路径。
有什么办法解决这个问题吗?我想删除所有目录中的歌曲,而不是带有奇数 ID 的歌曲。
【问题讨论】:
-
我相信当您从列表中删除一个项目时,列表会折叠以填补空白。所以你的索引会不正常。
标签: javafx observablelist