Crear una escena transparente en JavaFX

MD Aminul Islam 15 febrero 2024
  1. Crear una escena transparente en JavaFX
  2. Una forma alternativa de hacer un escenario transparente en JavaFX
Crear una escena transparente en JavaFX

A veces vemos una pantalla de precarga totalmente transparente en el inicio de una aplicación. Además, no podemos ver ninguna barra de título en la pantalla del precargador que contenga la opción predeterminada de cerrar, minimizar o maximizar.

Este artículo mostrará cómo podemos crear esta escena en nuestra aplicación. Además, vemos un ejemplo con una explicación adecuada para facilitar la comprensión de este tema.

Crear una escena transparente en JavaFX

En nuestro ejemplo a continuación, haremos una escena completamente invisible. Veremos sólo el contenido de la escena.

El código para nuestro ejemplo se verá como el siguiente,

// Importing necessary packages.

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.stage.StageStyle;

public class FXTransparent extends Application {
  public void start(Stage PrimaryStage) {
    PrimaryStage.initStyle(
        StageStyle.TRANSPARENT); // Set the initial style to the stage to transparent
    Text txt = new Text("I'm totally \n transparent..."); // Creating a text element.
    txt.setFont(new Font(30)); // Set the font size to 30 for the text.
    VBox vbox = new VBox(); // Create a Vbox
    vbox.getChildren().add(txt); // Add the text to the Vbox
    Scene scene = new Scene(vbox, 400, 250); // Create a scene with Vbox and dimension
    scene.setFill(null); // Set the scene to no fill
    PrimaryStage.setScene(scene); // Add the scene to stage
    PrimaryStage.show(); // Visualize the stage
  }

  public static void main(String[] args) {
    launch(args); // Launch the application
  }
}

Ya ordenamos el propósito de cada línea en el código. Ahora, discutimos la parte significativa del código.

A través de la línea PrimaryStage.initStyle(StageStyle.TRANSPARENT);, establecemos el estilo del escenario en transparente. Esto hará que todo el escenario sea transparente.

Tenga en cuenta que utilizamos el método initStyle() para este propósito. Después de compilar el código de ejemplo anterior y ejecutarlo en su entorno, obtendrá el siguiente resultado.

Salida de fondo transparente de JavaFX

Una forma alternativa de hacer un escenario transparente en JavaFX

JavaFX genera su interfaz de usuario usando FXML con soporte CSS. Puede crear o modificar fácilmente su interfaz de usuario con Scene Builder, proporcionado oficialmente por Oracle.

A través de esta herramienta, puede agregar fácilmente propiedades CSS a su interfaz de usuario y agregar muchos otros estilos a su interfaz de usuario con solo hacer clic con el mouse. O bien, puede crear un archivo CSS externo e incluirlo con su código como se muestra a continuación,

scene.getStylesheets().add("YourCSS.css")

Recuerde, si su IDE no admite la inclusión automática de bibliotecas y paquetes. Luego, es posible que deba incluir manualmente estas bibliotecas y paquetes necesarios antes de compilar.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

Artículo relacionado - Java JavaFX