首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaFX中的Platform.runLater和任务

JavaFX中的Platform.runLater和任务
EN

Stack Overflow用户
提问于 2012-12-09 11:25:20
回答 2查看 169.8K关注 0票数 94

我已经在这方面做了一些研究,但至少可以说,我仍然非常困惑。

谁能给我一个具体的例子,告诉我什么时候使用Task,什么时候使用Platform.runLater(Runnable);?到底有什么不同?什么时候使用这些有什么金科玉律吗?

如果我错了,也请纠正我,但这两个“对象”不是在GUI中的主线程内创建另一个线程的方法(用于更新GUI)吗?

EN

回答 2

Stack Overflow用户

发布于 2014-10-17 18:51:37

现在可以将其更改为lambda版本

代码语言:javascript
复制
@Override
public void actionPerformed(ActionEvent e) {
    Platform.runLater(() -> {
        try {
            //an event with a button maybe
            System.out.println("button is clicked");
        } catch (IOException | COSVisitorException ex) {
            Exceptions.printStackTrace(ex);
        }
    });
}
票数 13
EN

Stack Overflow用户

发布于 2015-07-17 17:39:26

使用explicite Platform.runLater()的一个原因可能是将ui中的属性绑定到服务(结果)属性。因此,如果您更新绑定的服务属性,则必须通过runLater()完成此操作:

在UI线程中,也称为JavaFX应用程序线程:

代码语言:javascript
复制
...    
listView.itemsProperty().bind(myListService.resultProperty());
...

在服务实现中(后台工作者):

代码语言:javascript
复制
...
Platform.runLater(() -> result.add("Element " + finalI));
...
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13784333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档