2017-04-20 86 views
1

我想嵌入一个Swing应用程序中的dukescript应用程序,所以我认为我必须嵌入一个面板来支持JavaFX渲染。如何将Dukescript应用程序嵌入到JavaFX场景中?

final JFXPanel fxPanel = new JFXPanel(); 
Scene scene = createScene(); 
fxPanel.setScene(scene); 

为了能够使Dukescript我认为我必须添加一个网页视图所以现有的JavaFX主持人(从HTML的Java)的alreasy可以相应地接收它的使用它。

Group root = new Group(); 
final WebView browser = new WebView(); 
final WebEngine webEngine = browser.getEngine(); 
root.getChildren().add(browser); 

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

<dependency> 
    <groupId>org.netbeans.html</groupId> 
    <artifactId>net.java.html.boot.fx</artifactId> 
    <scope>runtime</scope> 
</dependency> 

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

net.java.html.boot.fx.FXBrowsers presenter= new FXBrowsers(); 
presenter.load(browser , 
     "index.html", 
     Runnable onPageLoad??); 

你已经试过了吗?先谢谢你。

回答

2

的leaflet4j项目在JavaFX的嵌入DukeScript的演示:

https://github.com/dukescript/leaflet4j

它应该工作一样在摇摆,但你必须呼吁JavaFX的EventQueue上的JavaFX代码,类似这个:

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(); 
      } 
     } 
     }); 
    } 
    } 
); 
+0

谢谢先生Epple它的工作就像一个魅力!现在我们可以为基于dukescript技术的Jetbrains IDE创建插件。我会很快创建教程。 –