更有效的更新observableList

时间:2015-07-16 14:36:32

标签: java javafx observablelist

这是我的设置:

我有一个带有一些数据的mySQL数据库。

我有一个临时服务器,它可以下载这些数据并将其转换为ObservableList和。{ 客户可以制作自己的ObservableList副本,称之为localList

如果我想创建一个新条目,则要求必须通过将新条目发送到SQL数据库来完成, 服务器下载它,客户端拉出此更新,然后客户端看到更新。 (这是因为多个客户端将访问此数据库)。

这是我的问题: 目前,我这样做的方式是当我创建一个新条目时,服务器清除其observableList,再次填充它,客户端清除其localList并再次填充它。

我不必担心服务器代码(它将被更复杂的服务器取代),但我想知道 如果我的localList(来自ObservableList)附带了一些方法,可以与另一个列表进行比较并相应地进行更改。

而不是做

ObservableList<myType> locallist = FXCollections.observableArrayList();

....
localList.clear();
for (myType element : serverList) {
    localList.add(element);
}

每次我创建一个新条目,是否有更有效的方法?某种类型的update方法可能吗?

基本上问题归结为:

有没有办法在不完全清除列表然后逐个添加元素的情况下将observableList<myType>设置为等于另一个。

1 个答案:

答案 0 :(得分:1)

Bindings.bindContent(localList, serverList);

做你需要的? (Javadocs)。如果您在serverList中保留相同的列表实例,并且不重新分配引用,则会有效。