JavaFX Bloom类

Bloom 效果用于使场景某些部分的像素发光。它由类javafx.scene.effect.Bloom表示。此类包含各种属性,可以将这些属性设置为特定值以应用适当的效果。

1 Bloom类的属性

属性 描述 setter方法
input 此属性的类型为effect。它用于为辉光效果提供输入。 setInput(Effect value)
threshold 此属性属于 double 类型。它是像素亮度的最小值。 setThresholf(Double value)

2 Bloom类的构造函数

该类包含下面描述的个两构造函数。

  1. public Bloom() :使用默认参数创建 Bloom 类的新实例。
  2. public Bloom(Double Threshold_Value) :使用指定的参数创建 Bloom 类的新实例。

3  Bloom类的例子

package com.yiidian;

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.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class BloomEffect extends Application {
    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        Rectangle rect1= new Rectangle(60,50,150,200);
        Rectangle rect2 = new Rectangle(325,50,150,200);
        rect1.setFill(Color.GREEN);
        rect1.setStroke(Color.BLACK);
        rect1.setStrokeWidth(5);
        rect2.setFill(Color.GREEN);
        rect2.setStroke(Color.BLACK);
        rect2.setStrokeWidth(5);
        Text text1 = new Text();
        Text text2 = new Text();
        text1.setText("Effected shape");
        text2.setText("Original shape");
        text1.setX(65);
        text1.setY(300);
        text2.setX(335);
        text2.setY(300);
        text1.setFont(Font.font("Courier 10 Pitch", FontWeight.BOLD, FontPosture.REGULAR,16));
        text2.setFont(Font.font("Courier 10 Pitch",FontWeight.BOLD,FontPosture.REGULAR,16));
        text1.setFill(Color.RED);
        text2.setFill(Color.RED);
        text1.setStroke(Color.BLACK);
        text2.setStroke(Color.BLACK);
        text1.setStrokeWidth(0.2);
        text2.setStrokeWidth(0.2);
        Bloom bloom = new Bloom();
        bloom.setThreshold(0.1);
        rect1.setEffect(bloom);
        Group root = new Group();
        root.getChildren().addAll(rect1,rect2,text1,text2);
        Scene scene = new Scene(root,600,350);
        primaryStage.setScene(scene);
        primaryStage.setTitle("一点教程网:Bloom Effect Example");
        primaryStage.show();

        }
}  

输出结果为:

热门文章

优秀文章