Встраивание Gecko/WebKit в Java

Мне бы хотелось, чтобы Gecko, WebKit или другой веб-браузер были встроены в Java в качестве элемента управления Swing/AWT. Я ищу что-то другое, чем JRex или JWebPane,

3 ответа

Вы можете использовать JxBrowser. Он включает в себя компонент Swing/JavaFX, который упаковывает движок Chromium, обеспечивая богатый API и готовое аппаратное ускорение через графический процессор.

К сожалению, они отказались от поддержки других движков (таких как Gecko и WebKit) с версии 4.0.
Обратите внимание, что это не бесплатно, за исключением проектов с открытым исходным кодом.

JCEF

JCEF (Java Wrapper для Chromium Embedded Framework) - это Java-оболочка для CEF, которая, в свою очередь, является оболочкой для Chrome:

Оба проекта кажутся довольно активными, и рендеринг в браузере намного быстрее, чем в WebView JavaFX (по крайней мере, с JDK 8u20).

JFXPanel

Также возможно использовать JavaFX WebView в приложении Swing через JFXPanel.

public class JavaFxWebBrowser extends JFXPanel {
    private WebView webView;
    private WebEngine webEngine;

    public JavaFxWebBrowser() {
        Platform.runLater(() -> {
            initialiseJavaFXScene();
        });
    }

    private void initialiseJavaFXScene() {
        webView = new WebView();
        webEngine = webView.getEngine();
        webEngine.load("http://stackru.com");

        Scene scene = new Scene(webView);
        setScene(scene);
    }
}

Если опция SWT является опцией, вы можете использовать виджет Браузер SWT, который будет использовать браузер для конкретной платформы (например, Mozilla, Webkit, IE) для фактического отображения контента. Взгляните на эту статью Eclipse для обзора.

Если вы не хотите использовать SWT, то я рекомендую JavaXPCOM. Это позволяет встраивать Gecko в приложение Java.

Другие вопросы по тегам