ObservableList无法正常工作

时间:2016-05-09 22:28:36

标签: javafx imageview observablecollection

我每次进行某些操作时都想要刷新ObservableList<ImageView>。默认情况下,我在数组列表中放了三个图像,这是我在执行某些操作后删除最后一个图像的方法:

list.remove(list.size()-1;

删除项目后,我调用一个绘制此列表的方法;但是当只剩下一张图像时它就不会消失。如果列表为空,我已经尝试返回空Node,但它没有改变任何内容。还发现该列表在调试器中实际为空。知道为什么吗?

编辑:

ObservableList<ImageView> ammoList;
HBox ammoHBox;
...
private HBox addAmmo(){
    ammoHBox = new HBox();
    if(ammoList.isEmpty()) return hbox; //dont work
    ammoHBox.getChildren().addAll(naboje);
    ammoHBox.setSpacing(10);
    return ammoHBox;
}

每当ammoList发生变化时,我都会调用它。

1 个答案:

答案 0 :(得分:1)

我怀疑listjava.util.List,也许是支持ObservableListremove()。实际上,

 ObservableList<ImageView> ammoList = FXCollections.observableList(list);

虽然会报告对ammoList 的更改,但对list的更改不会。验证您使用ObservableList方法更改List,该方法采用两个参数,而不是相应的public function store() { $input = Input::all(); $e = new Employee(); $e->name = $input['name']; $e->email = $input['email']; $e->contact = $input['contact']; ... $e->save(); } 方法,后者需要一个。