Javafx 简明教程

JavaFX - Shadow Effect

JavaFX 中的影子效果会创建一个边缘模糊的指定节点副本。

The Shadow effect in JavaFX creates a duplicate of the specified node with blurry edges.

Shadow 类属于包 javafx.scene.effect ,它表示棕褐色色调效果。此类包含六个属性,如下所示:

The class named Shadow of the package javafx.scene.effect represents the sepia tone effect. This class contains six properties, which are −

  1. color − This property is of Color type represents the color of the shadow.

  2. blur type − This property is of the BlurType and it represents the type of the blur effect used to blur the shadow.

  3. radius − This property is of the type double and it represents the radius of the shadow blur kernel.

  4. width − This property is of the type double and it represents the width of the shadow blur kernel.

  5. height − This property is of the type double and it represents the height of the shadow blur kernel.

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

Example

以下程序是演示 JavaFX 阴影效果的示例。这里,我们正在场景中绘制文本“欢迎访问 Tutorialspoint”和一个圆。

The following program is an example demonstrating the shadow effect of JavaFX. In here, we are drawing the text “Welcome to Tutorialspoint”, and a circle in a scene.

我们正在应用模糊类型为高斯、颜色为玫瑰棕、高度、宽度和半径为 5 的阴影效果。

We are applying the shadow effect with the Blur Type Gaussian with the Color Rosy Brown and Height, Width, Radius as 5.

将此代码另存为名为 ShadowEffectExample.java 的文件中。

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

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.effect.BlurType;
import javafx.scene.effect.Shadow;
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 ShadowEffectExample 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.DARKSEAGREEN);

      //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);

      //Instantiating the Shadow class
      Shadow shadow = new Shadow();

      //setting the type of blur for the shadow
      shadow.setBlurType(BlurType.GAUSSIAN);

      //Setting color of the shadow
      shadow.setColor(Color.ROSYBROWN);

      //Setting the height of the shadow
      shadow.setHeight(5);

      //Setting the width of the shadow
      shadow.setWidth(5);

      //Setting the radius of the shadow
      shadow.setRadius(5);

      //Applying shadow effect to the text
      text.setEffect(shadow);

      //Applying shadow effect to the circle
      circle.setEffect(shadow);

      //Creating a Group object
      Group root = new Group(circle, text);

      //Creating a scene object
      Scene scene = new Scene(root, 600, 300);

      //Setting title to the Stage
      stage.setTitle("Bloom 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);
   }
}

使用以下命令,从命令提示符编译并执行已保存的 java 文件。

Compile and execute the saved java file from the command prompt using the following commands.

javac --module-path %PATH_TO_FX% --add-modules javafx.controls ShadowEffectExample.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls ShadowEffectExample

Output

执行后,上述程序会生成如下所示的 JavaFX 窗口。

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

shadow effect