【发布时间】:2018-08-26 13:44:54
【问题描述】:
我有两个线程,每个线程都有自己的功能:一个处理从套接字读取输入,另一个是与 GUI 相关的线程(使用 JavaFX)。
读取线程包含对创建 GUI 线程的 Runnable 对象的引用。当读取线程接收到某个类型的对象时,它会从 GUI 线程中调用一个方法。
此方法应创建一个新的 Button,该按钮标有通过套接字接收的一些文本。但是,然后尝试实例化一个新按钮,我得到以下异常:
Exception in thread "Thread-4" java.lang.IllegalStateException: Not on FX application thread; currentThread = Thread-4.
我提到当我尝试更新现有组件时,一切正常,并且不再抛出此异常,因此我得出结论,对象创建是触发异常的原因。
是否可以从不同的线程(如上所述)命令类的实例化?如果没有,是否有任何解决方法可以达到相同的结果?
谢谢!
【问题讨论】:
-
A) 关于如何提问的一般说明:每当您将问题描述为“当这样做时/当做其他事情时发生其他事情”时,您必须提供minimal reproducible example 证明了这种行为。 B)关于如何开始解决此类问题的一般说明:只需在您最喜欢的搜索引擎中输入错误消息;)然后,当建议的解决方案似乎都不适合您的特定环境时 - 选择最接近使用的解决方案注意 A ...
标签: java multithreading sockets javafx