JavaFX - 效果



效果是任何增強圖形外觀的操作。在 JavaFX 中,效果是一種應用於節點以視覺上增強其外觀的演算法。Node 類的 effect 屬性用於指定效果。

在 JavaFX 中,您可以為節點設定各種效果,例如光暈、模糊輝光。這些效果中的每一個都由一個類表示,所有這些類都位於名為javafx.scene.effect的包中。

將效果應用於節點

您可以使用setEffect()方法將效果應用於節點。對於此方法,您需要傳遞效果的物件。

要將效果應用於節點,您需要 -

  • 建立節點。

  • 例項化需要應用的效果的相應類。

  • 設定效果的屬性。

  • 使用setEffect()方法將效果應用於節點。

建立節點

首先,透過例項化其相應的類在 JavaFX 應用程式中建立節點。

例如,如果要將輝光效果應用於應用程式中的影像。首先,您需要透過例項化 Image 類來建立一個影像節點,並設定其檢視,如下所示。

示例

//Creating an image 
Image image = new Image("https://tutorialspoint.tw/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 方法設定效果的屬性。

例如 - 要繪製一個 3 維立方體,您需要傳遞其寬度、高度和深度。您可以使用其各自的 setter 方法指定這些值,如下所示 -

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

將效果新增到節點

最後,您可以使用setEffect()方法將所需的效果應用於節點。例如:要將輝光效果設定為影像節點,您需要將 Glow 類的物件傳遞給此方法,如下所示 -

imageView.setEffect(glow); 

JavaFX 效果型別

下表列出了 JavaFX 提供的各種效果(類)。這些類存在於名為javafx.scene.effect的包中。

序號 效果和描述
1 顏色調整

您可以透過將顏色調整效果應用於影像來調整影像的顏色。這包括調整每個畫素的色調、飽和度、亮度對比度

名為ColorAdjust的類(位於javafx.scene.effect包中)表示顏色調整效果。

2 顏色輸入

顏色輸入效果產生的輸出與繪製矩形並用顏色填充它相同。與其他效果不同,如果將此效果應用於任何節點,它只會顯示一個矩形框(而不是節點)。此效果主要用作其他效果的輸入。

名為ColorInput的類(位於javafx.scene.effect包中)表示顏色輸入效果。

3 影像輸入

JavaFX 中的影像輸入效果只是將影像嵌入到 JavaFX 螢幕中。

就像顏色輸入效果(它用於將指定的彩色矩形區域作為輸入傳遞給其他效果一樣),影像輸入效果用於將指定的影像作為輸入傳遞給另一個效果。

名為ImageInput的類(位於javafx.scene.effect包中)表示影像輸入效果。

4 混合

通常,混合是指兩種或多種不同事物或物質的混合。如果我們應用此混合效果,它將獲取兩個不同輸入在同一位置的畫素,並根據混合模式生成組合輸出。

名為Blend的類(位於javafx.scene.effect包中)表示混合效果。

5 光暈

應用光暈效果後,節點某些部分的畫素會發光。

名為Bloom的類(位於javafx.scene.effect包中)表示光暈效果。

6 輝光

與光暈類似,輝光效果使給定的輸入影像發光,此效果使輸入的亮畫素更亮。

名為Glow的類(位於javafx.scene.effect包中)表示輝光效果。

7 方框模糊

將此模糊效果應用於節點後,節點會變得不清楚。方框模糊是 JavaFX 提供的一種模糊效果。在此效果中,當我們將模糊應用於節點時,會使用一個簡單的方框濾鏡。

名為BoxBlur的類(位於javafx.scene.effect包中)表示方框模糊效果。

8 高斯模糊

與方框模糊一樣,高斯模糊是用於模糊 JavaFX 中節點的效果。高斯模糊效果的唯一區別在於使用高斯卷積核來產生模糊效果。

名為 GaussianBlur 的類(位於javafx.scene.effect包中)表示高斯模糊效果。

9 運動模糊

與高斯效果類似,運動模糊是用於模糊 JavaFX 中節點的效果。它也使用高斯卷積核來產生模糊效果,但區別在於在此效果中,高斯卷積核與指定的角度一起使用。

名為MotionBlur的類(位於javafx.scene.effect包中)表示運動模糊效果。

10 反射

將反射效果應用於 JavaFX 中的節點時,會在節點底部新增其反射。

名為Reflection的類(位於javafx.scene.effect包中)表示反射效果。

11 棕褐色

將棕褐色效果應用於 JavaFX 中的節點(通常為影像)時,會用紅棕色對其進行著色。

名為SepiaTone的類(位於javafx.scene.effect包中)表示棕褐色效果。

12 陰影

此效果會建立指定節點的副本,並帶有模糊的邊緣。

名為Shadow的類(位於javafx.scene.effect包中)表示棕褐色效果。

13 投影

將此效果應用於節點時,將在指定節點後面建立陰影。

名為DropShadow的類,位於javafx.scene.effect包中,表示陰影效果。

14 內陰影

將此效果應用於節點時,將在節點邊緣內部建立陰影。

名為InnerShadow的類,位於javafx.scene.effect包中,表示內陰影效果。

15 燈光

燈光效果用於模擬光源發出的光。有不同型別的燈光源,即點光源平行光源聚光燈

名為Lighting的類,位於javafx.scene.effect包中,表示燈光效果。

16 Light.Distant

將此效果應用於節點時,會模擬節點上的光線,就像它是由遠處的光源產生的。

平行光源 - 一個距離節點很遠的源。在這裡,光從源向一個方向衰減。

名為Light.Distant的類,位於javafx.scene.effect包中,表示平行光源。

17 Light.Spot

將此效果應用於節點時,會模擬節點上的光線,就像它是由聚光燈產生的。

聚光燈源 - 此光源的光向所有方向衰減。光強取決於物體與光源的距離。

名為Light.Spot的類,位於javafx.scene.effect包中,表示平行光源。

18 Point.Spot

將此效果應用於節點時,會模擬節點上的光線,就像它是由點光源產生的。

點光源 - 此光源的光從一個點向所有方向衰減。光強取決於物體與光源的距離。

名為Point.Spot的類,位於javafx.scene.effect包中,表示點光源。

廣告