为了账号安全,请及时绑定邮箱和手机立即绑定

JavaFX 在运行时从不同的线程触发对象创建

JavaFX 在运行时从不同的线程触发对象创建

翻阅古今 2021-08-13 15:33:44
我有两个线程,每个线程都有自己的功能:一个处理从套接字读取输入,另一个是与 GUI 相关的线程(使用 JavaFX)。读取线程包含对创建 GUI 线程的 Runnable 对象的引用。当读取线程接收到某个类型的对象时,它会从 GUI 线程调用一个方法。这个方法应该创建一个新的 Button 标记有一些通过套接字接收到的文本。但是,然后尝试实例化一个新的 Button,我收到以下异常:Exception in thread "Thread-4" java.lang.IllegalStateException: Not on FX application thread; currentThread = Thread-4.我提到当我尝试更新现有组件时一切正常,并且不再抛出此异常,因此我得出结论,对象创建是触发异常的原因。是否可以从不同的线程(如上所述)命令类的实例化?如果没有,是否有任何解决方法可以达到相同的结果?
查看完整描述

1 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

这可能已经被问过一千次了,并且是 JavaFX 编程的一个基本方面。必须从应用程序线程向 GUI 添加(而不是创建)控件。因此,如果您想从某个其他线程启动它,您必须将您的呼叫包装到一个Platform.runLater()呼叫中。


查看完整回答
反对 回复 2021-08-13
  • 1 回答
  • 0 关注
  • 167 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信