Efectos JavaFX - Reflexión

Al aplicar el efecto de reflexión a un nodo en JavaFX, se agrega un reflejo en la parte inferior del nodo.

La clase nombrada Reflection del paquete javafx.scene.effectrepresenta el efecto de reflexión. Esta clase contiene cuatro propiedades, que son:

  • topOpacity - Esta propiedad es de tipo doble que representa el valor de opacidad de los extremos superiores del reflejo.

  • bottomOpacity - Esta propiedad es de tipo doble que representa el valor de opacidad de los extremos inferiores del reflejo.

  • input - Esta propiedad es del tipo Efecto y representa una entrada al efecto de reflexión.

  • topOffset - Esta propiedad es de tipo doble que representa la distancia entre la parte inferior de la entrada y la parte superior de la reflexión.

  • fraction−Esta propiedad es de tipo doble y representa la fracción de entrada que es visible en la salida. El rango del valor de la fracción es de 0.0 a 1.0.

Ejemplo

El siguiente programa es un ejemplo que demuestra el efecto de reflexión. Aquí, estamos dibujando el texto “Bienvenido a Tutorialspoint” relleno con color DARKSEAGREEN y aplicándole el efecto de reflexión.

Guarde este código en un archivo con el nombre ReflectionEffectExample.java.

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.effect.Reflection; 
import javafx.scene.paint.Color; 
import javafx.stage.Stage; 
import javafx.scene.text.Font; 
import javafx.scene.text.FontWeight; 
import javafx.scene.text.Text; 
         
public class ReflectionEffectExample extends Application { 
   @Override 
   public void start(Stage stage) {       
      //Creating a Text object 
      Text text = new Text();       
      
      //Setting font to the text 
      text.setFont(Font.font(null, FontWeight.BOLD, 40));       
      
      //setting the position of the text 
      text.setX(60); 
      text.setY(150); 
      
      //Setting the text to be embedded. 
      text.setText("Welcome to Tutorialspoint");       
      
      //Setting the color of the text 
      text.setFill(Color.DARKSEAGREEN);  
       
      //Instanting the reflection class 
      Reflection reflection = new Reflection(); 
      
      //setting the bottom opacity of the reflection 
      reflection.setBottomOpacity(0.0); 
      
      //setting the top opacity of the reflection 
      reflection.setTopOpacity(0.5); 
      
      //setting the top offset of the reflection 
      reflection.setTopOffset(0.0);
      
      //Setting the fraction of the reflection 
      reflection.setFraction(0.7); 
       
      //Applying reflection effect to the text 
      text.setEffect(reflection);          
         
      //Creating a Group object  
      Group root = new Group(text);   
               
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage 
      stage.setTitle("Reflection effect example"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show();         
   } 
   public static void main(String args[]){ 
      launch(args); 
   } 
}

Compile y ejecute el archivo java guardado desde el símbolo del sistema utilizando los siguientes comandos.

javac ReflectionEffectExample.java 
java ReflectionEffectExample

Al ejecutarse, el programa anterior genera una ventana JavaFX como se muestra a continuación.