Как я могу встроить приложение Dukescript в сцену JavaFX?
Я хочу встроить приложение Dukescript в приложение Swing, поэтому я считаю, что мне нужно встроить панель для поддержки рендеринга 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, я думаю, что я должен добавить maven зависимость для докладчиков JavaFx.
<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??);
Вы уже пробовали это? Заранее спасибо.
1 ответ
У проекта leaflet4j есть демонстрация встраивания DukeScript в JavaFX:
https://github.com/dukescript/leaflet4j
Он должен работать так же в Swing, но вам придется вызывать код JavaFX в JavaFX EventQueue, подобно этому:
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();
}
}
});
}
}
);