JavaFX Effet de flou (Node Blur)

import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.Slider;
import javafx.scene.effect.GaussianBlur;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.stage.Stage;

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

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

  @Override
  public void start(Stage stage) {
    // Libellé à flouter
    var label = new Label("Test");
    // Police taille 64
    label.setFont(new Font(64));

    // L'effet de flou
    var blur = new GaussianBlur();

    // Pour flouter le libellé
    label.setEffect(blur);

    // Le curseur pour flouter le libellé
    Slider slider = new Slider();
    // Radius max du flou est à 63
    slider.setMax(63.0);
    // Le radius du flou par défaut est 10. Curseur à 10
    slider.setValue(blur.getRadius());

    // Le radius est lié au changement du curseur
    blur.radiusProperty().bind(slider.valueProperty());

    // Mise en page
    var root = new VBox(label, slider);
    root.setAlignment(Pos.CENTER);
    root.setMaxWidth(200);

    var scene = new Scene(new StackPane(root), 640, 480);
    stage.setScene(scene);
    stage.show();
  }

}

Commentaires