我是JavaFx的新手。我做了我的fxml文件,并创建了我的控制器。目前一切正常。 在我的模型中,我有从互联网上下载一些文件的线程。我想通知进展到UI(更新进度指示器组件)。JavaFx我的模型如何更新View?
我该怎么办?
这是Controller调用的模型方法。 我想通知用户进程的进展。 例如:线程每完成一次+ 10%。
public void download(){
ExecutorService pool = Executors.newSingleThreadExecutor();
List<Future<String>> futures = new ArrayList<Future<String>>();
futures.add(pool.submit(new Downloader(URL)));
futures.add(pool.submit(new Downloader(URL)));
pool.shutdown();
pool.awaitTermination(Long.MAX_VALUE, TimeUnit.MILLISECONDS);
... Manipulate downloaded files.
}
我该怎么办? ^^
在javafx中,您应该使用[Service](http://docs.oracle.com/javafx/2/api/javafx/concurrent/Service.html)和任务来更新进度。这是一个[很好的示例](https://gist.github.com/jewelsea/4947946),它显示了一个单独的线程和一个更大的线程池。你有很多任务,所以你可能想看看更大的线程池。 – brian
DataFX中的ProcessChain类完全符合您的需求:http://www.guigarage.com/2014/01/datafx-8-preview-2-processchain/ –