Web View - Java Chromium Embedded Framework (JCEF)

Fichier POM du projet Maven Java

Pour utiliser le JCEF vous devez ajouter le dépôt et le plugin JCEF Maven. Vous devez ajouter la dépendance CEF (Chromium Embedded Framework).

Le fichier POM devrait ressembler à ceci :

<project
	xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>fr.ronanlefichant</groupId>
	<artifactId>jcef</artifactId>
	<version>0.0.1-SNAPSHOT</version>
    
	<!-- Dépot JCEF Maven -->
	<repositories>
		<repository>
			<id>jcef-maven</id>
			<name>JCef Maven Repository</name>
			<url>https://friwi.me/jcef/maven</url>
		</repository>
	</repositories>
    
	<!-- Plugin JCEF Maven -->
	<pluginRepositories>
		<pluginRepository>
			<id>jcef-maven</id>
			<name>JCef Maven Repository</name>
			<url>https://friwi.me/jcef/maven</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</pluginRepository>
	</pluginRepositories>
    
	<!-- Dépendance JCEF -->
	<dependencies>
		<dependency>
			<groupId>org.cef</groupId>
			<artifactId>jcef-main</artifactId>
			<version>84.3.8+gc8a556f+chromium-84.0.4147.105-build-1</version>
		</dependency>
	</dependencies>
</project>

Le code Java

Le code suivant vous permet de créer une application Java Swing avec un navigateur web Chromium embarqué.

package jcef;

import java.awt.BorderLayout;
import java.awt.Component;
import java.io.IOException;

import javax.swing.JFrame;
import javax.swing.JPanel;

import org.cef.CefApp;
import org.cef.CefClient;
import org.cef.CefSettings;
import org.cef.JCefLoader;
import org.cef.browser.CefBrowser;

public class App {

  public static void main(String[] args) throws IOException, RuntimeException {

    /* Création de la fenêtre et de l'élément racine */
    JFrame frame = new JFrame();
    frame.setSize(800, 600);
    JPanel root = new JPanel(new BorderLayout());
    frame.add(root);

    /* Création des paramètres */
    CefSettings settings = new CefSettings();
    /* Important pour l'application avec fenêtre */
    settings.windowless_rendering_enabled = false;

    /* Initialise la webview avec les paramètres */
    CefApp cefApp = JCefLoader.installAndLoadCef(settings);
    CefClient client = cefApp.createClient();

    /* Charge la page google.fr */
    CefBrowser browser = client.createBrowser("https://google.fr/", false, false);

    /* Récupération du composant AWT */
    Component comp = browser.getUIComponent();

    /* Ajoute le composant au centre de l'élément racine */
    root.add(comp, BorderLayout.CENTER);

    /* Centre la fenêtre */
    frame.setLocationRelativeTo(null);

    /* Ferme le programme quand la fenêtre est fermée */
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    /* Affiche la fenêtre */
    frame.setVisible(true);

  }

}

Commentaires