在Java中嵌入Gecko / WebKit

时间:2010-04-16 15:01:34

标签: java swing javafx webkit gecko

我想将Gecko,WebKit或其他嵌入Java的webbrowser作为Swing / AWT控件。 我正在寻找与JRex或JWebPane不同的东西。

3 个答案:

答案 0 :(得分:14)

您可以使用JxBrowser。 它具有一个Swing / JavaFX组件,它包含Chromium引擎,同时通过GPU提供丰富的API和开箱即用的硬件加速。

不幸的是,自4.0版以来,他们已经放弃了对其他引擎(如Gecko和WebKit)的支持 请注意,除开源项目外,它不是免费的。

答案 1 :(得分:11)

如果SWT是一个选项,您可以使用SWT Browser widget,这将使用特定于平台的浏览器(例如Mozilla,Webkit,IE)来实际显示内容。请查看this Eclipse article以获取概述。

如果您不想使用SWT,我建议JavaXPCOM。这允许您将Gecko嵌入Java应用程序中。

答案 2 :(得分:10)

JCEF

JCEF(用于Chromium嵌入式框架的Java包装器)是围绕CEF的Java包装器,它又是Chrome的包装器:

两个项目看起来都非常活跃,浏览器渲染速度比JavaFX的WebView快得多(至少使用JDK 8u20)。

JFXPanel

也可以通过JFXPanel在Swing应用程序中使用JavaFX WebView。

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);
    }
}