В настоящее время я играю с лицензией Evaluation для JxBrowser 6.2.JxBrowser HEAVYWEIGHT Dispose on WINDOW_CLOSE_REQUEST
Я создаю BrowserView следующим образом:
Browser browser = new Browser(BrowserType.HEAVYWEIGHT);
BrowserView browser_view = new BrowserView(browser);
Я прилагаю компонент BrowserView следующим образом:
stage.setScene(new Scene(browser_view));
Если браузер настроен на работу в сокращенном режиме, я м, которые могут быть выполнены:
browser_view.getBrowser().dispose();
Platform.exit();
Однако, если браузер настроен на работу в HEAVYWEIGH Режим T, то приложение зависает при выполнении:
browser_view.getBrowser().dispose();
Я могу видеть в журналах, что было написано сообщение Dispose, но это, кажется, как будто процессы JxBrowser хрома никогда не получить/процесс сообщения.
Любые идеи?
Если вы используете 'stage.setOnHidden()' вместо 'stage.setOnCloseRequest()', вам гарантируется, что этап уже закрыт. –
Хм ... Я просто выстрелил. Хотя в документации Java сказано, что close() эквивалентно hide(), и что hide() просто устанавливает видимость окна в false, close(), похоже, делает больше. Браузер все еще висит до тех пор, пока сцена не будет явно закрыта. – blf
Но обработчик 'setOnHidden', в отличие от обработчика' setOnCloseRequest', который вы сказали, что используете, не вызывается до тех пор, пока этап не будет закрыт. –