JavaFX ListView重复删除错误

JavaFX ListView重复删除错误,listview,javafx,observable,observablelist,Listview,Javafx,Observable,Observablelist,第一次复制后的行不可选择。只有在从列表中删除所有值后,ListView才会更新为空列表 如果有人对如何解决这个问题有任何建议,我将不胜感激 当我使用调试器时,ObservableList和ListView都具有预期的值。我想真正的问题是,为什么只有在删除所有对象后,列表视图才会自动清除?问题在于您使用的单元格类。它只设置文本,但从不清除文本。由于单元格可能变为空,因此需要修复此行为: new ListCell<QueueSong>(){ @Override prote

第一次复制后的行不可选择。只有在从列表中删除所有值后,
ListView才会更新为空列表

如果有人对如何解决这个问题有任何建议,我将不胜感激


当我使用调试器时,
ObservableList
ListView
都具有预期的值。我想真正的问题是,为什么只有在删除所有对象后,
列表视图才会自动清除?

问题在于您使用的单元格类。它只设置文本,但从不清除文本。由于单元格可能变为空,因此需要修复此行为:

new ListCell<QueueSong>(){
    @Override
    protected void updateItem(QueueSong myObject, boolean empty) {
        super.updateItem(myObject, empty);
        // set text to song or clear (= set to null)
        setText((empty || myObject == null) ? null : myObject.getSong());
    }
}
newlistcell(){
@凌驾
受保护的void updateItem(队列对象,布尔空){
super.updateItem(myObject,空);
//将文本设置为歌曲或清除(=设置为空)
setText((空的| | myObject==null)?null:myObject.getSong();
}
}

你能给你的问题加上一句吗?我应该自己发现的。非常感谢你。
Platform.runLater( () -> {
       // queueList.getItems().remove(0);
        SongQueueObservableList.remove(0);
    });
new ListCell<QueueSong>(){
    @Override
    protected void updateItem(QueueSong myObject, boolean empty) {
        super.updateItem(myObject, empty);
        // set text to song or clear (= set to null)
        setText((empty || myObject == null) ? null : myObject.getSong());
    }
}