【发布时间】:2013-12-20 21:16:46
【问题描述】:
我有搜索功能,尽管它搜索速度非常快,即使没有多线程我也无法注意到它我仍然想知道如何在此上使用多线程
search.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observableValue, String s, String s2) {
manager.searchString(s2);
listView.getItems().setAll(manager.getList());
}
});
所以基本上有一个TextField,当它的文本被改变时,我去调用对象manager中的一个搜索方法,当它完成时将它的搜索结果放入一个数组中。
然后ListView 应该在完成时将其数据更新到这个新数组。
如何在一个线程上进行搜索,并在完成后更新列表数据?!
我相信我不能只从其他线程调用列表函数,因为 GUI 的东西应该只从一个线程调用。
【问题讨论】:
-
对于 Swing,有一个 good documentation about concurrency。对于JavaFX,好像有个similar document,虽然没看过……
标签: java multithreading javafx