JavaFXの特殊効果を使用すると、ぼかし、影、色のずれ、輝きなどの特殊効果を追加して、シーングラフのノードの外観を飾ることができます。実際の3Dプログラミングを行うことなく、視点を追加してアプリケーションに3次元の外観を与えることさえできます。
JavaFXの特殊効果は、特殊効果を作成するために使用できるさまざまなサブクラスを持つ抽象クラスであるEffectクラスから派生しています。 Effectクラスのサブクラスは合計17個ですが、すべてを学習する必要はありません。まず、ぼやけ、影、反射、輝きを追加して、よりリアルな形にするエフェクトに注目します。
<! - 1 - >すべてのエフェクトは同様に動作します。まず、デフォルトのコンストラクタを呼び出して、エフェクトのクラスのインスタンスを作成します。次に、オプションで、1つ以上のsetメソッドを呼び出すことによって、エフェクトのプロパティを設定します。多くの場合、デフォルトのプロパティ値が適切なので、この手順を省略することもできます。最後に、ノードのsetEffectメソッドを呼び出すことによって、ノードにエフェクトを適用します。
たとえば、四角形を作成し、塗りつぶしてからドロップシャドウを追加するコードを次に示します。
<! - 2 - >矩形r1 =新しい矩形(50,50,100,100); r1。 setFill(カラー。ライトグレー); r1。 setStroke(Color。BLACK); r1。 setStrokeWidth(2); DropShadow shadow1 =新しいDropShadow(); r1。 setEffect(shadow1);
この図は、この効果の結果を示しています。ご覧のように、矩形は微妙な影で囲まれています。
<! - 3 - >setEffectメソッドはNodeクラスによって定義されます。つまり、シーングラフの任意のノードにエフェクトを適用できます。このエフェクトは、setEffectメソッドを呼び出すノードだけでなく、そのノードの子ノードにも適用されます。実際、シーンのルートノードでsetEffectを呼び出すと、エフェクトがシーン全体に適用されます。