Efectos JavaFX - Iluminación (fuente predeterminada)
El efecto de iluminación se utiliza para simular una luz de una fuente de luz. Hay diferentes tipos de fuentes de luz que incluyen:Point, Distant y Spot.
Si no mencionamos ninguna fuente de iluminación, utiliza la fuente predeterminada de JavaFX.
La clase nombrada Lighting del paquete javafx.scene.effect representa el efecto de iluminación, esta clase contiene diez propiedades, que son:
bumpInput - Esta propiedad es del tipo Efecto y representa una entrada de mapa de relieve opcional para el efecto de iluminación.
contentInput - Esta propiedad es del tipo Efecto y representa una entrada de contenido al efecto de iluminación.
diffuseConstant - Esta propiedad es del tipo double y representa la constante difusa de la luz.
SpecularConstant - Esta propiedad es del tipo double y representa la constante especular de la luz.
SpecularExponent - Esta propiedad es del tipo double y representa el exponente especular de la luz.
SurfaceScale - Esta propiedad es del tipo double y representa el factor de escala de superficie de la luz.
Ejemplo
El siguiente programa es un ejemplo que demuestra el efecto de iluminación de JavaFX. Aquí estamos dibujando un texto "Bienvenido a Tutorialspoint" y un círculo en una escena.
A estos, les estamos aplicando el efecto de iluminación. Aquí, como no mencionamos ninguna fuente, JavaFX usa su fuente predeterminada.
Guarde este código en un archivo con el nombre LightingEffectExample.java.
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.effect.Lighting;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
public class LightingEffectExample 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(50);
//Setting the text to be embedded.
text.setText("Welcome to Tutorialspoint");
//Setting the color of the text
text.setFill(Color.RED);
//Drawing a Circle
Circle circle = new Circle();
//Setting the center of the circle
circle.setCenterX(300.0f);
circle.setCenterY(160.0f);
//Setting the radius of the circle
circle.setRadius(100.0f);
//setting the fill color of the circle
circle.setFill(Color.CORNFLOWERBLUE);
//Instantiating the Lighting class
Lighting lighting = new Lighting();
//Applying lighting effect to the text
text.setEffect(lighting);
//Applying lighting effect to the circle
circle.setEffect(lighting);
//Creating a Group object
Group root = new Group(text,circle);
//Creating a scene object
Scene scene = new Scene(root, 600, 300);
//Setting title to the Stage
stage.setTitle("Distant light 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 LightingEffectExample.java
java LightingEffectExample
Al ejecutarse, el programa anterior genera una ventana JavaFX como se muestra a continuación.