首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Dukescript应用程序嵌入到JavaFX场景中?

如何将Dukescript应用程序嵌入到JavaFX场景中?
EN

Stack Overflow用户
提问于 2017-04-20 22:02:02
回答 1查看 239关注 0票数 1

我想在Swing应用程序中嵌入一个dukescript应用程序,所以我认为我必须嵌入一个面板来支持JavaFX呈现。

代码语言:javascript
复制
final JFXPanel fxPanel = new JFXPanel();
Scene scene = createScene();
fxPanel.setScene(scene);

为了能够呈现Dukescript,我想我必须添加一个Webview,这样现有的JavaFX演示者(从html到java)就可以相应地接收到它,并使用它。

代码语言:javascript
复制
Group root = new Group();
final WebView browser = new WebView();
final WebEngine webEngine = browser.getEngine();
root.getChildren().add(browser);

然后将它与Dukescript一起使用,我认为我应该为JavaFx演示者添加maven依赖项。

代码语言:javascript
复制
<dependency>
  <groupId>org.netbeans.html</groupId>
  <artifactId>net.java.html.boot.fx</artifactId>
  <scope>runtime</scope>
</dependency>

所以我认为所需的代码应该是这样的。

代码语言:javascript
复制
net.java.html.boot.fx.FXBrowsers presenter= new FXBrowsers();
presenter.load(browser ,
        "index.html",
        Runnable onPageLoad??);

你试过了吗?提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-04 07:48:12

leaflet4j项目有一个在JavaFX中嵌入DukeScript的演示:

https://github.com/dukescript/leaflet4j

它在Swing中的工作方式应该是相同的,但是您必须调用JavaFX EventQueue上的JavaFX代码,类似于以下内容:

代码语言:javascript
复制
Platform.runLater(new Runnable() {
  @Override
  public void run() {
    webView = new WebView();
    FXBrowsers.load(webView, this.getClass().getResource("/demo/test.html"),
      new Runnable() {
        @Override
        public void run() {
          try {
            DataModel.onPageLoad();
          } catch (Exception e) {
            e.printStackTrace();
          }
        }
      });
    }
  }
);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43530668

复制
相关文章

相似问题

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