JavaFX Effects - Bloom



On applying the bloom effect, pixels in some portions of the node are made to glow.

The class named Bloom of the package javafx.scene.effect represents the bloom effect. This class contains two properties, which are −

  • input − This property is of the type Effect and it represents an input to the bloom effect.

  • threshold − This property is of the type double; this represents a threshold value of luminosity of the pixels of the node. All those pixels having luminosity greater than equal to this value are made to glow. The range of the threshold value is 0.0 to 1.0.

Example

Following is an example demonstrating the bloom effect. We will be drawing a text “Welcome to Tutorialspoint” and applying the bloom effect to it with a threshold value 1.0.

Save this code in a file with the name BloomEffectExample.java.

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.effect.Bloom; 
import javafx.scene.paint.Color; 
import javafx.scene.shape.Rectangle; 
import javafx.stage.Stage; 
import javafx.scene.text.Font; 
import javafx.scene.text.FontWeight; 
import javafx.scene.text.Text; 
         
public class BloomEffectExample 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);
      
      //Instantiating the Rectangle class 
      Rectangle rectangle = new Rectangle(); 
      
      //Setting the position of the rectangle 
      rectangle.setX(50.0f); 
      rectangle.setY(80.0f); 
      
      //Setting the width of the rectangle 
      rectangle.setWidth(500.0f); 
      
      //Setting the height of the rectangle 
      rectangle.setHeight(120.0f); 
      
      //Setting the color of the rectangle 
      rectangle.setFill(Color.TEAL); 
       
      //Instantiating the Bloom class 
      Bloom bloom = new Bloom(); 
      
      //setting threshold for bloom 
      bloom.setThreshold(0.1); 
      
      //Applying bloom effect to text 
      text.setEffect(bloom);          
         
      //Creating a Group object  
      Group root = new Group(rectangle, text);   
               
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);
      
      //Setting title to the Stage 
      stage.setTitle("Sample Application"); 
         
      //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 and execute the saved java file from the command prompt using the following commands.

javac BloomEffectExample.java 
java BloomEffectExample

On executing, the above program generates a JavaFX window as shown below.

Bloom Effect
javafx_effects.htm
Advertisements