当前位置: 首页 > 文档资料 > JavaFX 中文教程 >

效果(Effects)

优质
小牛编辑
126浏览
2023-12-01

效果是增强图形外观的任何操作。 在JavaFX中,效果是一种应用于节点以在视觉上增强其外观的算法。 Node类的effect属性用于指定效果。

在JavaFX中,您可以为节点设置各种效果,例如bloom, blurglow 。 这些效果中的每一个都由一个类表示,所有这些类都可以在名为javafx.scene.effect的包中找到。

将效果应用于节点

您可以使用setEffect()方法将效果应用于节点。 对于此方法,您需要传递效果的对象。

要将效果应用于节点,您需要 -

  • 创建节点。

  • 实例化需要应用的效果的相应类。

  • 设置效果的属性。

  • 使用setEffect()方法将效果应用于节点。

创建节点

首先,通过实例化各自的类来创建JavaFX应用程序中的节点。

例如,如果要将发光效果应用于应用程序中的图像。 首先,您需要通过实例化Image类并设置其视图来创建图像节点,如下所示。

//Creating an image 
Image image = new Image("https://www.xnip.cn/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);  

实例化各个类

实例化表示需要应用于创建节点的效果的类。

例如 - 要应用发光效果,您需要实例化Glow类,如下面的代码框所示 -

Glow glow = new Glow();

设置效果的属性

在实例化类之后,您需要使用其setter方法设置效果的属性。

例如 - 要绘制三维框,您需要传递其宽度,高度和深度。 您可以使用各自的setter方法指定这些值,如下所示 -

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

添加效果到节点

最后,您可以使用setEffect()方法将所需效果应用于节点。 例如:要将光晕效果设置为图像节点,您需要将Glow类的对象传递给此方法,如下所示 -

imageView.setEffect(glow); 

JavaFX Effects - 下表提供了JavaFX提供的各种效果(类)的列表。 这些类存在于名为javafx.scene.effect的包中。

S.No形状和描述
1Color Adjust

您可以通过对图像应用颜色调整效果来调整图像的颜色。 这包括调整每个像素的hue, saturation, brightnesscontrast

javafx.scene.effect名为ColorAdjust的类表示颜色调整效果。

2Color Input

颜色输入效果提供与绘制矩形并用颜色填充相同的输出。 与其他效果不同,如果此效果应用于任何节点,则它仅显示矩形框(而不是节点)。 此效果主要用于传递其他效果的输入。

javafx.scene.effect名为ColorInput的类表示颜色输入效果。

3Image Input

JavaFX中的图像输入效果只是将图像嵌入到JavaFX屏幕中。

就像颜色输入效果(它用于将指定的彩色矩形区域作为输入传递给其他效果)一样,图像输入效果用于将指定的图像作为输入传递给另一个效果。

javafx.scene.effect名为ImageInput的类表示图像输入效果。

4Blend

通常,混合物是指两种或更多种不同物质或物质的混合物。 如果我们应用此混合效果,它会在同一位置获取两个不同输入的像素,并根据blend mode生成组合输出。

javafx.scene.effect名为Blend的类表示混合效果。

5Bloom

在应用布隆效果时,使节点的某些部分中的像素发光。

javafx.scene.effect名为Bloom的类表示bloom效果。

6Glow

就像bloom一样,Glow效果使给定的输入图像发光,这种效果使输入的亮像素更亮。

javafx.scene.effect名为Glow的类表示发光效果。

7Box Blur

在将此模糊效果应用于节点时,使其不清楚。 Box blur是JavaFX提供的一种模糊效果。 在此效果中,当我们将模糊应用于节点时,使用简单的盒式过滤器。

javafx.scene.effect名为BoxBlur的类表示boxblur效果。

8GaussianBlur

就像Box Blur Gaussian一样,它可以模糊JavaFX中的节点。 Gaussian Blur effect的唯一区别是高斯卷积核用于产生模糊效果。

javafx.scene.effect名为GaussianBlur的类表示高斯模糊效果。

9MotionBlur

就像高斯效果一样,运动模糊是一种模糊JavaFX节点的效果。 它还使用高斯卷积核来产生模糊效果,但不同之处在于高斯卷积核以指定角度使用。

javafx.scene.effect名为MotionBlur的类表示Motion Blur效果。

10Reflection

在将反射效果应用于JavaFX中的节点时,会在节点的底部添加对它的反射。

名为Reflection的包javafx.scene.effect表示反射效果。

11SepiaTone

在将Sepia色调效果应用于JavaFX中的节点(一般图像)时,它会被调整为红棕色。

javafx.scene.effect名为SepiaTone的类表示棕褐色调效果。

12Shadow

此效果会创建具有模糊边缘的指定节点的副本。

javafx.scene.effect名为Shadow的类表示棕褐色调效果。

13DropShadow

将此效果应用于节点时,将在指定节点后面创建阴影。

javafx.scene.effect名为DropShadow的类表示投影效果。

14InnerShadow

将此效果应用于节点时,将在节点边缘内创建阴影。

javafx.scene.effect名为InnerShadow的类表示内部阴影效果。

15Lighting

照明效果用于模拟来自光源的光。 有不同种类的光源,即pointdistantspot

javafx.scene.effect名为Lighting的类表示照明效果。

16Light.Distant

在将该效果应用于节点时,在其上模拟光,就好像它是由远距离光源生成的。

Distant Light Source - 离节点很远的光源。 在这里,光从光源的一个方向衰减。

javafx.scene.effect名为Light.Distant的类表示远处的光源。

17Light.Spot

将此效果应用于节点时,会在其上模拟灯光,就好像它是由聚光灯生成的一样。

Spot light Source - 来自此光源的光线在所有方向上衰减。 光的强度取决于物体与光源的距离。

javafx.scene.effect名为Light.Spot的类表示远程光源。

18Point.Spot

将此效果应用于节点时,会在其上模拟光,就好像它是由点光源生成的一样。

Point Light Source - 来自此光源的光从单个点向所有方向衰减。 光的强度取决于物体与光源的距离。

包javafx.scene.effect的名为Point.Spot的类表示点光源。