Встраивание Gecko / WebKit в Java - PullRequest
29 голосов
/ 16 апреля 2010

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

Ответы [ 3 ]

15 голосов
/ 13 ноября 2010

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

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

11 голосов
/ 13 ноября 2010

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

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

10 голосов
/ 25 сентября 2014

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://stackoverflow.com");

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