0

我有一些代码,当它执行时,它会抛出一个 RuntimeException,说:

 JXBrowser should only be constructed on the EDT

它源于我创建 JXbrowser 组件时

browser = (JXBrowser) browserFactory.create(true, WebBrowserType.JX);

在修复此错误时我应该寻找什么?

4

2 回答 2

0

JxBrowser 从版本 7 开始放弃了这个要求。

在 JxBrowser 7 中,您可以在任何线程中Engine进行初始化。Browser这些操作很繁重,最好不要在 EDT 中进行。

创建浏览器后,您需要BrowserView根据 Swing 规则在 EDT 内创建并将其添加到您的界面中。

于 2022-02-07T09:19:07.717 回答
0

JavaFX (OpenJFX)不是线程安全的。

SwingVaadin和大多数其他用户界面框架一样,您必须仅在专用于该框架的一个线程内限制对小部件和其他 UI 相关对象的所有访问和操作。

显然,您的应用程序正在启动其他线程,然后对它们执行 JavaFX 工作。永远不要这样做。

您可以通过多种方式在后台线程上执行冗长的任务,然后在完成后向 UI 线程发布请求以使用结果更新 UI 小部件。但是您必须学习以学习这些技术。

请参阅本教程教程。

于 2021-12-27T06:42:23.213 回答