Integrazione di Gecko / WebKit in Java
Mi piacerebbe avere Gecko, WebKit o un altro webbrowser incorporato in Java come controllo Swing/AWT.
Sto cercando qualcosa di diverso da JRex o JWebPane
.
3 answers
È possibile utilizzare JxBrowser. È dotato di un componente Swing / JavaFX che avvolge il motore Chromium fornendo una ricca API e accelerazione hardware pronta all'uso attraverso la GPU.
Sfortunatamente, hanno abbandonato il supporto per altri motori (come Gecko e WebKit) dalla versione 4.0.
Si noti che non è gratuito, ad eccezione dei progetti open source.
Se SWT è un'opzione, è possibile utilizzare il SWT Browser widget, questo utilizzerà un browser specifico della piattaforma (ad esempio Mozilla, Webkit, IE) per visualizzare effettivamente il contenuto. Dai un'occhiata a questo articolo di Eclipse per una panoramica.
Se non vuoi usare SWT, ti consiglio JavaXPCOM. Ciò consente di incorporare Gecko in un'applicazione Java.
JCEF
JCEF (Java Wrapper per il framework Embedded Chromium) è un wrapper Java attorno a CEF, che è a sua volta un wrapper attorno a Chrome:
Entrambi i progetti sembrano abbastanza attivi e il rendering del browser è molto più veloce della WebView di JavaFX (almeno con JDK 8u20).
JFXPANNELLO
È anche possibile utilizzare JavaFX WebView in un'applicazione Swing tramite 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);
}
}