Java: Hiệu ứng nở (Bloom)
Khi áp dụng hiệu ứng nở, các điểm ảnh trong một số phần của nút được tạo ra để phát sáng.
Lớp có tên Bloom của gói javafx.scene.effect đại diện cho hiệu ứng nở. Lớp này chứa hai thuộc tính, đó là:
-
input - Thuộc tính này thuộc kiểu Effect và nó đại diện cho đầu vào cho hiệu ứng nở.
-
threshold - Thuộc tính này thuộc loại double; nó đại diện cho một giá trị ngưỡng của độ sáng của các pixel của nút. Tất cả những điểm ảnh có độ sáng lớn hơn giá trị này được tạo ra để phát sáng. Phạm vi của giá trị ngưỡng là 0.0 đến 1.0.
Ví dụ
Sau đây là một ví dụ minh họa hiệu ứng nở. Ta sẽ vẽ một văn bản "Welcome to V1Study" và áp dụng hiệu ứng nở cho nó với giá trị ngưỡng 1.0.
Lưu mã này trong một tệp với tên 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 V1Study"); //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); } }
Biên dịch và thực thi tệp java đã lưu từ dấu nhắc lệnh bằng các lệnh sau:
javac BloomEffectExample.java java BloomEffectExample
Khi thực thi, chương trình trên tạo ra một cửa sổ JavaFX như hình dưới đây.