'DropShadow' class is used to renders a shadow of the given content behind the content with the specified color, radius, and offset.
DropShadow class provides below constructors to set effect.
public DropShadow()
public DropShadow(double radius, Color color)
public DropShadow(double radius, double offsetX, double offsetY, Color color)
public DropShadow(BlurType blurType, Color color, double radius, double spread, double offsetX, double offsetY)
radius: the radius of the shadow blur kernel
offsetX: the shadow offset in the x direction
offsetY: the shadow offset in the y direction
color: the shadow color
blurType: the algorithm used to blur the shadow
FXML to create a drop shadow effect on a Text UI 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">
<DropShadow fx:id = "shadow1" radius="5.0" color="gray"
offsetX="6"
offsetY="6"/>
</Text>
Find the below working application.
dropShadow.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.DropShadowEffectController">
<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">
<DropShadow fx:id = "shadow1" radius="5.0" color="gray"
offsetX="6"
offsetY="6"/>
</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">
<DropShadow fx:id = "shadow1" radius="5.0" color="gray"
offsetX="6"
offsetY="-6"/>
</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">
<DropShadow fx:id = "shadow1" radius="5.0" color="gray"
offsetX="-6"
offsetY="6"/>
</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">
<DropShadow fx:id = "shadow1" radius="5.0" color="gray"
offsetX="-6"
offsetY="-6"/>
</Text>
</Group>
DropShadowEffectController.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 DropShadowEffectController 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) {
}
}
DropShadowDemo.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 DropShadowDemo extends Application {
private static final String FXML_FILE = "/dropShadow.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