JavaFX : Une Webview simple

JavaFX peut afficher une page web grâce à la classe WebView. Cette classe est capable d'afficher du HTML, CSS, Javascript ainsi que du SVG dans un programme.

Dans cet article, nous allons voir comment afficher du contenu web simplement grâce à cette classe.

Le code

Voici le code Java pour afficher une page web :

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.web.WebView;
import javafx.scene.web.WebEngine;
import javafx.stage.Stage;

public class WebViewApp extends Application {

    public static void main(String[] args) {
        launch(args);
    }
    
    public void start(Stage primaryStage) {

        WebView webView = new WebView();

        WebEngine webEngine = webView.getEngine();
        webEngine.load("https://www.google.fr");

        Scene scene = new Scene(webView, 800, 600);

        primaryStage.setScene(scene);
        primaryStage.show();

    }
    
}

Application JavaFX

Pour ceux qui ne connaissent pas JavaFX, la fonction launch sert à démarrer le programme JavaFX et à appeler la fonction start.

De plus, le programme doit hériter de la classe javafx.application.Application.

La classe Stage correspond à la fenêtre du programme. Stage équivaut à la classe JFrame dans Swing ou Frame dans AWT.

WebView / WebEngine

La classe WebView sert à afficher le contenu web chargé par la classe WebEngine. Vous devez d'abord créer une instance WebView pour obtenir une instance de classe de WebEngine.

WebView webView = new WebView();

WebEngine webEngine = webView.getEngine();

Création d'une Scene

Il ne reste plus qu'à créer une scène avec la WebView puis à intégrer la scène dans stage (la fenêtre) et enfin afficher la fenêtre.

Scene scene = new Scene(webView, 800, 600);

primaryStage.setScene(scene);
primaryStage.show();

Conclusion

En quelques lignes, vous obtenez un navigateur assez complet grâce à JavaFX.

Cet article ne parle pas de fonctionnalités avancées comme d'UserAgent ou de LoadWorker...

Bien sûr, je vous invite à aller voir la documentation de JavaFX et de la documentation de la classe WebView ainsi que la documentation de la classe WebEngine.

Commentaires