Я хотел бы иметь Gecko, WebKit или другой веб-браузер, встроенный в Java, в качестве элемента управления Swing / AWT. Я ищу что-то отличное от JRex или JWebPane
.
Встраивание Gecko / WebKit в Java
Ответы (3)
Вы можете использовать JxBrowser. Он включает компонент Swing / JavaFX, который включает в себя механизм Chromium, обеспечивая при этом богатый API и внеплановый аппаратное ускорение коробки через графический процессор.
К сожалению, они отказались от поддержки других движков (таких как Gecko и WebKit) с версии 4.0.
Обратите внимание, что это не бесплатно, за исключением проектов с открытым исходным кодом.
Если SWT - вариант, вы можете использовать SWT Browser widget, для фактического отображения содержимого будет использоваться браузер, зависящий от платформы (например, Mozilla, Webkit, IE). Взгляните на эту статью о Eclipse для обзора.
Если вы не хотите использовать SWT, я рекомендую JavaXPCOM. Это позволяет встроить Gecko в приложение Java.
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);
}
}