java - 更新 observableList 的更有效方法

标签 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>等于另一个,而无需完全清除列表,然后逐个添加元素。

最佳答案

Bindings.bindContent(localList, serverList);

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

关于java - 更新 observableList 的更有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31457289/

相关文章:

java - 如何更改 TomEE/OpenEJB 中的 EJB 计时器线程池大小?

java - 如何添加更多球并使它们具有不同的起始位置?以我的方法来说这可能吗?

JavaFX如何删除按钮的边框

java - 具有条件内容的绑定(bind)标签?

JavaFX 去除工具栏渐变

JavaFX:TableView 使用 ObservableList 中的特定数据填充列

javafx-2 - 带有自定义项的 JavaFx 2 ChoiceBox

java - 在android中将Spinner String值 "20-34"转换为从20到34的整数

java - Android Studio找不到资源且资源链接失败

java - ListChangeListener wasPermutated block