JavaFXの2D図形で設定できるプロパティを徹底解説
JavaFXでは、すべての2D図形(シェイプ)に対して、さまざまなプロパティを設定できます。これらのプロパティを適切に使いこなすことで、図形の見た目を細かくコントロールできます。ここでは、主なプロパティとその設定方法を詳しく解説します。
JavaFXの2D図形の主要プロパティ
1. Stroke Type(ストロークタイプ)
Stroke Typeは、図形の境界線(輪郭線)の種類を指定・定義するプロパティです。ShapeクラスのsetStrokeType()メソッドを使用して設定します。
JavaFXでは、StrokeTypeというEnumの3つの定数によって、次の3種類のストロークがサポートされています。
- StrokeType.INSIDE(内側に描画)
- StrokeType.OUTSIDE(外側に描画)
- StrokeType.CENTERED(中央に描画)
2. Stroke Width(ストローク幅)
Stroke Widthは、図形の境界線の太さを指定するプロパティです。ShapeクラスのsetWidth()メソッドを使って、境界線の幅に任意の値を設定できます。
3. Fill(塗りつぶし)
Fillプロパティは、図形の内部領域を塗りつぶす色を指定します。Shapeクラスのfill()メソッドを使用することで、特定の図形をお好みの色で塗りつぶせます。
4. Stroke(ストローク)
Strokeプロパティは、図形の境界線の色を指定するプロパティです。javafx.scene.shape.ShapeクラスのsetStroke()メソッドで境界線の色を設定します。
5. Stroke Line Cap(ストロークラインキャップ)
Stroke Line Capは、線の端部(終点・始点)のキャップスタイルを指定するプロパティです。javafx.scene.shape.ShapeクラスのsetStrokeLineCap()メソッドで値を設定できます。
JavaFXでは、StrokeLineCapというEnumの3つの定数により、以下の3種類のラインキャップがサポートされています。
- BUTT(平らな端)
- ROUND(丸い端)
- SQUARE(四角い端)
6. strokeLineJoin(ストロークラインジョイン)
複数の線を組み合わせて構成される図形において、stroke line joinプロパティは、2本の線が接合する部分の形状を指定します。setStrokeLineJoin()メソッドで設定可能です。
JavaFXでは、StrokeLineJoinというEnumの3つの定数により、次の3種類の結合スタイルがサポートされています。
- BEVEL(面取り)
- MITER(マイター/角を尖らせる)
- ROUND(丸みのある結合)
7. Stroke Miter Limit(ストロークマイターリミット)
Stroke Miter Limitプロパティは、StrokeLineJoin.MITERスタイルにおけるストロークラインジョインの制限値を指定します。javafx.scene.shape.ShapeクラスのsetStrokeMiterLimit()メソッドでこの値を設定できます。
このメソッドはdouble型の値を受け取り、ストロークマイターリミットを指定された値に制限します。指定した値が1.0未満の場合は、1.0として扱われます。
8. Smooth(スムージング)
Smoothプロパティは、アンチエイリアス処理のヒントを使用するかどうかを指定します。javafx.scene.shape.ShapeクラスのsetSmooth()メソッドで値を設定できます。
9. strokeDashOffset(ストロークダッシュオフセット)
破線パターンをストロークとして使用している場合、strokeDashOffsetプロパティは、その破線パターンへのオフセット(開始位置のずれ)を指定します。
サンプルプログラム
以下は、長方形に対して各種ストローク関連のプロパティを設定するJavaFXのサンプルコードです。
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.scene.shape.Rectangle;
import javafx.scene.shape.StrokeLineCap;
import javafx.scene.shape.StrokeLineJoin;
import javafx.scene.shape.StrokeType;
public class ShapeProperties extends Application {
public void start(Stage stage) {
// 長方形を描画
Rectangle rect = new Rectangle(100.0, 75.0, 400.0, 150.0);
// 2D図形のプロパティを設定
rect.setStrokeWidth(25.0);
rect.setStrokeType(StrokeType.OUTSIDE);
rect.setStroke(Color.BLUE);
rect.setStrokeMiterLimit(8.0);
rect.setStrokeLineCap(StrokeLineCap.ROUND);
rect.setStrokeLineJoin(StrokeLineJoin.MITER);
rect.setSmooth(false);
// Stageオブジェクトの準備
Group root = new Group(rect);
Scene scene = new Scene(root, 600, 300);
stage.setTitle("Shape Properties Example");
stage.setScene(scene);
stage.show();
}
public static void main(String args[]){
launch(args);
}
}
実行結果
上記のコードを実行すると、青色の太い境界線が外側に描画された長方形が表示されます。線端は丸みを帯びたROUNDキャップ、線の結合にはMITERスタイルが適用されています。

-
JavaFXのシーングラフとは?基本構造とノードの役割を解説
JavaFXにおけるシーングラフとは JavaFXでは、GUIアプリケーションは「シーングラフ(Scene Graph)」と呼ばれるデータ構造を用いて構築されます。シーングラフは、モダンなグラフィカルアプリケーションで広く採用されている、ツリー構造に似たデータ構造です。アプリケーションの起点となるものであり、複数のノード(Node)の集合体として表現されます。 JavaFXで何かを画面に表示するには、ノードを使ってシーングラフを構築し、それをStageクラスのオブジェクトに設定する必要があります。Stageクラスは、JavaFXアプリケーションにおける最上位のコンテナとして機能します。 ノード
-
Java Swingのアーキテクチャとは?特徴とMVCモデルをわかりやすく解説
Java Swingは、Javaプログラム向けにグラフィカルユーザーインターフェース(GUI)を提供するAPI群です。Java Swingは、それ以前のAPIであるAbstract Window Toolkit(AWT)をベースに開発されました。AWTと比べて、より豊富で洗練されたGUIコンポーネントを備えており、シンプルな部品から複雑なツリーやテーブルまで幅広く利用できます。さらに、プラグイン可能なルック&フィール(Pluggable Look and Feel)機能により、Javaプログラムの外観を基盤となるプラットフォームから独立して制御できる点も大きな特長です。 Java Swingの