重置可观察列表

时间:2017-03-04 21:37:23

标签: java arraylist javafx

所以我有一个可观察的ArrayList,它进入了Java FX中的TableView。每当我清除weeksData.clear()时,我似乎无法重新分配变量。表和数据刚刚变空。 FXCollections.observableArrayList()是否保留了添加的原始数组,我只是清除引用变量?

 ObservableList<Week> weeksData;
 weeksData = FXCollections.observableArrayList();

登录

第一次登录

第二次登录而不清除数据

使用weeksData.clear();第二次登录,即使使用第一次填充表格的相同命令,也可以使用sizeof

我想重新登录我的程序,而不是将数据重复到我的表中。只是为了重建它。这更有意义吗?

2 个答案:

答案 0 :(得分:0)

如果没有看到代码,我假设您使用TableView或类似内容填充tableView.getItems().addAll(weeksData);,这是正确的吗?基本上,它只是将weeksData列表的所有元素复制到tableView的项目列表中。当您清除或修改基础weeksData列表时,tableView未被“通知”,可以这么说。

您应该使用tableView方法设置setItems()中的项目:

ObservableList<Week> weeksData;
weeksData = FXCollections.observableArrayList();
tableView.setItems(weeksData);

这基本上可以使您的weeksDatatableView保持同步。

如果您不希望两个列表同步,则另一个选项是调用clear()项目列表上的TableView方法:

tableview.getItems().clear();

答案 1 :(得分:0)

我明白了。事实证明,我填充表格的方式是通过静态和最终对象。当我清除了weeksData时,它会过滤掉并擦除连接类字段中的数据。谢谢你的所有答案!