如何将 Dukescript 应用程序嵌入到 JavaFX 场景中?
How can I embed a Dukescript App into a JavaFX Scene?
我想在 Swing 应用程序中嵌入一个 dukescript 应用程序,所以我认为我必须嵌入一个面板来支持 JavaFX 渲染。
final JFXPanel fxPanel = new JFXPanel();
Scene scene = createScene();
fxPanel.setScene(scene);
为了能够呈现 Dukescript,我认为我必须添加一个 Webview,以便现有的 JavaFX 演示者(从 html 到 java)可以接收它并相应地使用它。
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??);
你试过了吗?提前谢谢你。
leaflet4j项目有一个在JavaFX中嵌入DukeScript的demo:
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();
}
}
});
}
}
);
我想在 Swing 应用程序中嵌入一个 dukescript 应用程序,所以我认为我必须嵌入一个面板来支持 JavaFX 渲染。
final JFXPanel fxPanel = new JFXPanel();
Scene scene = createScene();
fxPanel.setScene(scene);
为了能够呈现 Dukescript,我认为我必须添加一个 Webview,以便现有的 JavaFX 演示者(从 html 到 java)可以接收它并相应地使用它。
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??);
你试过了吗?提前谢谢你。
leaflet4j项目有一个在JavaFX中嵌入DukeScript的demo:
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();
}
}
});
}
}
);