J'aimerais avoir Gecko, WebKit ou un autre navigateur intégré dans Java en tant que contrôle Swing/AWT. Je recherche quelque chose de différent de JRex ou JWebPane
.
Vous pouvez utiliser JxBrowser . Il comporte un composant Swing/JavaFX qui enveloppe le moteur Chromium tout en fournissant une API riche et une accélération matérielle prête à l'emploi via le GPU.
Malheureusement, ils ont abandonné le support pour d'autres moteurs (comme Gecko et WebKit) depuis la version 4.0.
Notez qu'il n'est pas gratuit, sauf pour les projets open source.
Si SWT est une option, vous pouvez utiliser le widget Navigateur SWT , cela utilisera un navigateur spécifique à la plate-forme (par exemple Mozilla, Webkit, IE) pour afficher réellement le contenu. Jetez un œil à cet article Eclipse pour un aperçu.
Si vous ne voulez pas utiliser SWT, alors je recommande JavaXPCOM . Cela vous permet d'intégrer Gecko dans une application Java.
JCEF (Java Wrapper pour le Chromium Embedded Framework) est un Java wrapper autour de CEF, qui est à son tour un wrapper autour de Chrome:
Les deux projets semblent assez actifs et le rendu du navigateur est beaucoup plus rapide que WebView de JavaFX (au moins avec JDK 8u20).
Il est également possible d'utiliser JavaFX WebView dans une application Swing via 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);
}
}