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());
}
}