Les dépendances Maven JavaFX controls et web
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>18</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-web</artifactId>
<version>18</version>
</dependency>
</dependencies>
Code Java
import javafx.application.Application;
import javafx.collections.ObservableList;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
/**
* JavaFX App
*/
public class App extends Application {
public static void main(String[] args) {
launch(args);
}
public void start(Stage primaryStage) {
VBox root = new VBox();
// Espace de 20 entre les noeuds dans root
root.setSpacing(20);
// Le titre
Label title = new Label("Vidéo HTML");
title.setStyle("-fx-font-size: 32px;");
// Le moteur et la vue web
WebView webView = new WebView();
WebEngine webEngine = webView.getEngine();
/*
* iframe contenant la vidéo et suppression des marges pour l'élément body
*/
webEngine.loadContent(
"<html><body style=\"margin: 0;\"><iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>");
// La web view n'excède pas 560x315
webView.setMaxWidth(560);
webView.setMaxHeight(315);
// Libellé sous la vidéo
Label label = new Label("Vidéo 560x315");
label.setStyle("-fx-font-size: 18px;");
// Ajoute tous les éléments à la racine
ObservableList < Node > rootChildren = root.getChildren();
rootChildren.add(title);
rootChildren.add(webView);
rootChildren.add(label);
Scene scene = new Scene(root, 800, 600);
primaryStage.setScene(scene);
primaryStage.show();
}
}
Commentaires
Enregistrer un commentaire