BoxBlur class is used to create box blur effect using a simple box filter kernel, with separately configurable sizes in both dimensions, and an iteration parameter that controls the quality of the resulting blur.
BoxBlur class provides following constructors to define BoxBlur instance.
public BoxBlur()
public BoxBlur(double width, double height, int iterations)
width: the horizontal dimension of the blur effect. Width specifies horizontal blurness.
height: the vertical dimension of the blur effect. ‘height’ specifies vertical blurness.
iterations: the number of times to iterate the blur effect to improve its "quality" or "smoothness"
FXMl to blur a Text control
<Text fx:id = "text1" text="Learning JavaFX" fill="white"
style="-fx-font-weight: bold; -fx-font-size: 50; -fx-font-family: Verdana; -fx-font-style: italic"
stroke="black" strokeWidth="2"
x="50" y = "50" effect="$shadow1">
<BoxBlur fx:id = "shadow1"
width="10"
height="5"
iterations="2"/>
</Text>
Find the below working application.
boxBlurDemo.fxml
<?import javafx.scene.*?>
<?import javafx.scene.shape.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.text.*?>
<?import javafx.scene.effect.*?>
<Group xmlns:fx="http://javafx.com/fxml" fx:controller="com.sample.app.effects.controller.InnerShadowEffectController">
<Text fx:id = "text1" text="Learning JavaFX" fill="white"
style="-fx-font-weight: bold; -fx-font-size: 50; -fx-font-family: Verdana; -fx-font-style: italic"
stroke="black" strokeWidth="2"
x="50" y = "50" effect="$shadow1">
<BoxBlur fx:id = "shadow1"
width="10"
height="5"
iterations="2"/>
</Text>
<Text fx:id = "text2" text="Learning JavaFX" fill="white"
style="-fx-font-weight: bold; -fx-font-size: 50; -fx-font-family: Verdana; -fx-font-style: italic"
stroke="black" strokeWidth="2"
x="50" y = "150" effect="$shadow1">
<BoxBlur fx:id = "shadow1"
width="5"
height="10"
iterations="2"/>
</Text>
<Text fx:id = "text3" text="Learning JavaFX" fill="white"
style="-fx-font-weight: bold; -fx-font-size: 50; -fx-font-family: Verdana; -fx-font-style: italic"
stroke="black" strokeWidth="2"
x="50" y = "250" effect="$shadow1">
<BoxBlur fx:id = "shadow1"
width="10"
height="5"
iterations="1"/>
</Text>
<Text fx:id = "text4" text="Learning JavaFX" fill="white"
style="-fx-font-weight: bold; -fx-font-size: 50; -fx-font-family: Verdana; -fx-font-style: italic"
stroke="black" strokeWidth="2"
x="50" y = "350" effect="$shadow1">
<BoxBlur fx:id = "shadow1"
width="5"
height="10"
iterations="1"/>
</Text>
</Group>
BoxBlurController.java
package com.sample.app.effects.controller;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.text.Text;
public class BoxBlurController implements Initializable {
@FXML
private Text text1;
@FXML
private Text text2;
@FXML
private Text text3;
@FXML
private Text text4;
@Override
public void initialize(URL location, ResourceBundle resources) {
}
}
BoxBlurDemo.java
package com.sample.app.effects;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class BoxBlurDemo extends Application {
private static final String FXML_FILE = "/boxBlurDemo.fxml";
private static final String STAGE_TITLE = "Drop Shadow Effect";
public static void main(String args[]) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
Parent root = (Parent) FXMLLoader.load(this.getClass().getResource(FXML_FILE));
Scene scene = new Scene(root, 600, 400, Color.WHITE);
primaryStage.setTitle(STAGE_TITLE);
primaryStage.setScene(scene);
primaryStage.show();
}
}
Output
Previous Next Home
No comments:
Post a Comment