【问题标题】:More efficient method of updating observableList更有效的更新 observableList 的方法
【发布时间】:2015-07-16 14:36:32
【问题描述】:

这是我的设置:

我有一个带有一些数据的 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&lt;myType&gt; 设置为等于另一个,而无需完全清除列表然后逐个添加元素。

【问题讨论】:

    标签: java javafx observablelist


    【解决方案1】:

    Bindings.bindContent(localList, serverList);
    

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

    【讨论】:

    • 啊,是的,这可能有用!问题是我实际上并没有实际的服务器可以使用,所以我不知道引用是否被重新分配。
    • 这没有意义。该引用在您的客户端代码中是本地的。
    • 啊,我没戏了。我明白你的意思了。你是对的,这非常有效。
    猜你喜欢
    • 2015-12-30
    • 2014-06-19
    • 2016-03-02
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多