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.