2017-04-20 88 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創建插件。我會很快創建教程。 –