JavaFX - Hiệu ứng

Hiệu ứng là bất kỳ hành động nào làm tăng hình thức của đồ họa. Trong JavaFX, hiệu ứng là một thuật toán được áp dụng trên các nút để tăng cường sự xuất hiện của chúng một cách trực quan. Thuộc tính hiệu ứng củaNode lớp được sử dụng để chỉ định hiệu ứng.

Trong JavaFX, bạn có thể đặt các hiệu ứng khác nhau cho một nút, chẳng hạn như bloom, blurglow. Mỗi hiệu ứng này được đại diện bởi một lớp và tất cả các lớp này đều có sẵn trong một gói có tênjavafx.scene.effect.

Áp dụng hiệu ứng cho nút

Bạn có thể áp dụng hiệu ứng cho một nút bằng cách sử dụng setEffect()phương pháp. Đối với phương thức này, bạn cần truyền đối tượng của hiệu ứng.

Để áp dụng một hiệu ứng cho một nút, bạn cần phải -

  • Tạo nút.

  • Khởi tạo lớp tương ứng của hiệu ứng cần được áp dụng.

  • Đặt thuộc tính của hiệu ứng.

  • Áp dụng hiệu ứng cho nút bằng cách sử dụng setEffect() phương pháp.

Tạo các nút

Trước hết, tạo các nút trong ứng dụng JavaFX bằng cách khởi tạo các lớp tương ứng của chúng.

Ví dụ: nếu bạn muốn áp dụng hiệu ứng ánh sáng cho hình ảnh trong ứng dụng của mình. Đầu tiên, bạn cần tạo một nút hình ảnh bằng cách khởi tạo lớp Hình ảnh và thiết lập chế độ xem của nó như hình dưới đây.

//Creating an image 
Image image = new Image("https://www.tutorialspoint.com/green/images/logo.png"); 
       
//Setting the image view 
ImageView imageView = new ImageView(image); 

//Setting the position of the image 
imageView.setX(100); 
imageView.setY(70);  

//setting the fit height and width of the image view 
imageView.setFitHeight(200);
imageView.setFitWidth(400); 

//Setting the preserve ratio of the image view 
imageView.setPreserveRatio(true);

Khởi tạo lớp tương ứng

Khởi tạo lớp đại diện cho hiệu ứng cần được áp dụng cho nút đã tạo.

Ví dụ - Để áp dụng hiệu ứng phát sáng, bạn cần khởi tạo Glow lớp như được hiển thị trong hộp mã sau:

Glow glow = new Glow();

Đặt thuộc tính của hiệu ứng

Sau khi khởi tạo lớp, bạn cần thiết lập các thuộc tính cho hiệu ứng bằng các phương thức setter của nó.

Ví dụ - Để vẽ một hộp 3 Chiều, bạn cần chuyển chiều rộng, chiều cao và chiều sâu của nó. Bạn có thể chỉ định các giá trị này bằng cách sử dụng các phương thức setter tương ứng của chúng như được hiển thị bên dưới -

//setting the level property 
glow.setLevel(0.9);

Thêm hiệu ứng vào nút

Cuối cùng, bạn có thể áp dụng hiệu ứng cần thiết cho nút bằng cách sử dụng setEffect()phương pháp. Ví dụ: Để đặt hiệu ứng phát sáng cho nút hình ảnh, bạn cần truyền đối tượng của lớp Glow cho phương thức này như sau:

imageView.setEffect(glow);

JavaFX Effects- Bảng sau cung cấp cho bạn danh sách các hiệu ứng (lớp) khác nhau được cung cấp bởi JavaFX. Các lớp này tồn tại trong gói được gọi làjavafx.scene.effect.

S. không Hình dạng và Mô tả
1 Điều chỉnh màu sắc

Bạn có thể điều chỉnh màu sắc của hình ảnh bằng cách áp dụng hiệu ứng điều chỉnh màu sắc cho hình ảnh đó. Điều này bao gồm việc điều chỉnhhue, saturation, brightnesscontrast trên mỗi pixel

Lớp có tên ColorAdjust của gói javafx.scene.effect đại diện cho hiệu ứng điều chỉnh màu sắc.

2 Đầu vào màu

Hiệu ứng đầu vào màu cho kết quả tương tự như vẽ một hình chữ nhật và tô màu vào nó. Không giống như các hiệu ứng khác, nếu hiệu ứng này được áp dụng cho bất kỳ nút nào, nó sẽ chỉ hiển thị một hình hộp chữ nhật (không phải nút). Hiệu ứng này chủ yếu được sử dụng làm đầu vào cho các hiệu ứng khác.

Lớp có tên ColorInput của gói javafx.scene.effect đại diện cho hiệu ứng đầu vào màu.

3 Đầu vào hình ảnh

Hiệu ứng đầu vào hình ảnh trong JavaFX chỉ nhúng một hình ảnh vào màn hình JavaFX.

Cũng giống như hiệu ứng Nhập màu (Nó được sử dụng để chuyển vùng hình chữ nhật có màu được chỉ định làm đầu vào cho hiệu ứng khác), hiệu ứng Nhập ảnh được sử dụng để chuyển hình ảnh được chỉ định làm đầu vào cho một hiệu ứng khác.

Lớp có tên ImageInput của gói javafx.scene.effect đại diện cho hiệu ứng Nhập ảnh.

4 trộn

Nói chung, hỗn hợp có nghĩa là hỗn hợp của hai hoặc nhiều thứ hoặc chất khác nhau. Nếu chúng ta áp dụng hiệu ứng pha trộn này, nó sẽ lấy các pixel của hai đầu vào khác nhau, tại cùng một vị trí và nó tạo ra kết quả đầu ra kết hợp dựa trênblend mode.

Lớp có tên Blend của gói javafx.scene.effect đại diện cho hiệu ứng pha trộn.

5 Hoa

Khi áp dụng hiệu ứng nở, các pixel trong một số phần của nút được làm cho 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ở.

6 Phát sáng

Cũng giống như bloom, hiệu ứng Glow làm cho hình ảnh đầu vào nhất định phát sáng, hiệu ứng này làm cho các pixel sáng của đầu vào sáng hơn.

Lớp có tên Glow của gói javafx.scene.effect đại diện cho hiệu ứng phát sáng.

7 Hộp mờ

Khi áp dụng hiệu ứng mờ này cho một nút, nó không rõ ràng. Làm mờ hộp là một loại hiệu ứng làm mờ được cung cấp bởi JavaFX. Trong hiệu ứng này, khi chúng ta áp dụng hiệu ứng mờ cho một nút, một bộ lọc hộp đơn giản sẽ được sử dụng.

Lớp có tên BoxBlur của gói javafx.scene.effect đại diện cho hiệu ứng boxblur.

số 8 GaussianBlur

Cũng giống như Box Blur Gaussian là một hiệu ứng để làm mờ các nút trong JavaFX. Sự khác biệt duy nhất trongGaussian Blur effect là một nhân tích chập Gauss được sử dụng để tạo ra hiệu ứng làm mờ.

Lớp có tên GaussianBlur của gói javafx.scene.effect đại diện cho hiệu ứng Gaussian Blur.

9 Chuyển động mờ

Cũng giống như Hiệu ứng Gaussian, Motion Blur là hiệu ứng làm mờ các nút trong JavaFX. Nó cũng sử dụng nhân tích chập Gauss để tạo ra hiệu ứng làm mờ, nhưng sự khác biệt trong hiệu ứng này là nhân tích chập Gauss được sử dụng với một góc xác định.

Lớp có tên MotionBlur của gói javafx.scene.effect đại diện cho hiệu ứng Motion Blur.

10 Suy ngẫm

Khi áp dụng hiệu ứng phản chiếu cho một nút trong JavaFX, hình ảnh phản chiếu của nó được thêm vào ở dưới cùng của nút.

Lớp có tên Reflection của gói javafx.scene.effect thể hiện hiệu ứng phản xạ.

11 SepiaTone

Khi áp dụng hiệu ứng tông màu nâu đỏ cho một nút trong JavaFX (hình ảnh nói chung), nó được tôn lên với màu nâu đỏ.

Lớp có tên SepiaTone của gói javafx.scene.effect đại diện cho hiệu ứng tông màu nâu đỏ.

12 Bóng

Hiệu ứng này tạo ra một bản sao của nút được chỉ định với các cạnh mờ.

Lớp có tên Shadow của gói javafx.scene.effect đại diện cho hiệu ứng tông màu nâu đỏ.

13 DropShadow

Khi áp dụng hiệu ứng này cho một nút, một bóng đổ sẽ được tạo ra phía sau nút được chỉ định.

Lớp có tên DropShadow của gói javafx.scene.effect đại diện cho hiệu ứng đổ bóng.

14 InnerShadow

Khi áp dụng hiệu ứng này cho một nút, một bóng đổ sẽ được tạo ra bên trong các cạnh của nút.

Lớp có tên InnerShadow của gói javafx.scene.effect đại diện cho hiệu ứng bóng bên trong.

15 Thắp sáng

Hiệu ứng ánh sáng được sử dụng để mô phỏng ánh sáng từ nguồn sáng. Có nhiều loại nguồn sáng khác nhau cụ thể làpoint, distantspot.

Lớp có tên Lighting của gói javafx.scene.effect đại diện cho hiệu ứng ánh sáng.

16 Light.Distant

Khi áp dụng hiệu ứng này cho một nút, một ánh sáng được mô phỏng trên đó, như thể nó được tạo ra bởi một nguồn sáng ở xa.

Distant Light Source- Một nguồn ở khoảng cách xa với nút. Ở đây, ánh sáng bị suy giảm theo một hướng so với nguồn.

Lớp có tên Light.Distant của gói javafx.scene.effect đại diện cho nguồn sáng ở xa.

17 Điểm thu hút

Khi áp dụng hiệu ứng này cho một nút, một ánh sáng được mô phỏng trên đó, như thể nó được tạo ra bởi một điểm sáng.

Spot light Source- Ánh sáng từ nguồn này suy giảm theo mọi hướng. Cường độ của ánh sáng phụ thuộc vào khoảng cách của vật với nguồn.

Lớp có tên Light.Spot của gói javafx.scene.effect đại diện cho nguồn sáng ở xa.

18 Point.Spot

Khi áp dụng hiệu ứng này cho một nút, một ánh sáng được mô phỏng trên đó, như thể nó được tạo ra bởi một nguồn sáng điểm.

Point Light Source- Ánh sáng từ nguồn này suy giảm theo mọi hướng từ một điểm duy nhất. Cường độ của ánh sáng phụ thuộc vào khoảng cách của vật với nguồn.

Lớp có tên Point.Spot của gói javafx.scene.effect đại diện cho đèn điểm.