所以我有一个可观察的ArrayList,它进入了Java FX中的TableView。每当我清除weeksData.clear()
时,我似乎无法重新分配变量。表和数据刚刚变空。 FXCollections.observableArrayList()
是否保留了添加的原始数组,我只是清除引用变量?
ObservableList<Week> weeksData;
weeksData = FXCollections.observableArrayList();
登录
第一次登录
第二次登录而不清除数据
使用weeksData.clear();
第二次登录,即使使用第一次填充表格的相同命令,也可以使用sizeof
我想重新登录我的程序,而不是将数据重复到我的表中。只是为了重建它。这更有意义吗?
答案 0 :(得分:0)
如果没有看到代码,我假设您使用TableView
或类似内容填充tableView.getItems().addAll(weeksData);
,这是正确的吗?基本上,它只是将weeksData
列表的所有元素复制到tableView
的项目列表中。当您清除或修改基础weeksData
列表时,tableView
未被“通知”,可以这么说。
您应该使用tableView
方法设置setItems()
中的项目:
ObservableList<Week> weeksData;
weeksData = FXCollections.observableArrayList();
tableView.setItems(weeksData);
这基本上可以使您的weeksData
和tableView
保持同步。
如果您不希望两个列表同步,则另一个选项是调用clear()
项目列表上的TableView
方法:
tableview.getItems().clear();
答案 1 :(得分:0)
我明白了。事实证明,我填充表格的方式是通过静态和最终对象。当我清除了weeksData时,它会过滤掉并擦除连接类字段中的数据。谢谢你的所有答案!