2017-04-20 13 views
1

私はSwingアプリケーションの中にdukescriptアプリケーションを埋め込みたいので、JavaFXレンダリングをサポートするためにパネルを埋めなければならないと思います。DukescriptアプリケーションをJavaFXシーンに埋め込むにはどうしたらいいですか?

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

私は(Java用のHTMLから)alreasy既存のJavaFXプレゼンターは、使用に応じてそれを受け取ることができるようにWebViewのを追加することが必要であることを考えるDukescriptをレンダリングすることができるようにします。

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

それはSwingで同じように動作するはずですが、あなたはに類似した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

ありがとうございます。エプル氏魅力的でした!今では、dukescript技術に基づいてJetbrains IDE用のプラグインを作成できます。私はすぐにチュートリアルを作成します。 –

関連する問題