0
Mac OS SierraのJavaFXでJXBrowser Chromiumブラウザエンジンを試しています。 browser.goBack()またはbrowser.goForward()メソッドを呼び出した後、URLが完全にロードされるまで待ってナビゲーション履歴を確認したいと思います。下記のシンプルなアプリケーションはJVMをクラッシュさせますが、Java(Swing)でも同じコードが正常に動作します。 Javaスイングアプリで同じ呼び出しが問題なく動作します。なぜ誰にも分かりませんか?JxBrowserを使用するJavaFXでは、invokeAndWaitFinishLoadingMainFrame()メソッドがJVMをクラッシュさせます。
public class JavaFXSample extends Application {
@Override
public void init() throws Exception {
// On Mac OS X Chromium engine must be initialized in non-UI thread.
if (Environment.isMac()) {
BrowserCore.initialize();
}
}
@Override
public void start(final Stage primaryStage) {
Browser browser = new Browser();
BrowserView view = new BrowserView(browser);
Scene scene = new Scene(new BorderPane(view), 700, 500);
primaryStage.setScene(scene);
primaryStage.show();
primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>() {
@Override
public void handle(WindowEvent t) {
Platform.exit();
System.exit(0);
}
});
Browser.invokeAndWaitFinishLoadingMainFrame(browser, new Callback<Browser>
() {
@Override
public void invoke(Browser browser) {
browser.loadURL("http://www.google.com");
}
});
}
public static void main(String[] args) {
launch(args);
}
}