JavaFX Web View transparente

JavaFX web dépendances Maven

<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 WebView JavaFX

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
import javafx.stage.StageStyle;

/**
 * JavaFX App
 */
public class App extends Application {

  @Override
  public void start(Stage stage) {
    // La vue web
    WebView webView = new WebView();

    // La page html
    StringBuffer html = new StringBuffer("<html>");
    html.append("<head>");
    // Style CSS pour une page transparente avec l'utilisation de rgba (canal alpha)
    html.append("<style> body { background-color: rgba(0, 255, 0, 0.1); }</style>");
    html.append("</head>");
    html.append("<body>");
    html.append("<h1>Fond transparent !</h1>");
    html.append("</body></html>");

    webView.getEngine().loadContent(html.toString());

    // La page web transparente
    webView.setPageFill(Color.TRANSPARENT);

    // Scène transparente de taille 300x100
    Scene scene = new Scene(webView, 300, 100, Color.TRANSPARENT);

    // Couleur de fond transparent pour la fenêtre
    stage.initStyle(StageStyle.TRANSPARENT);
    stage.setScene(scene);
    stage.show();

  }

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

}

Commentaires