Java
 Computer >> コンピューター >  >> プログラミング >> Java

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の2D図形で設定できるプロパティを徹底解説

  1. JavaFXのシーングラフとは?基本構造とノードの役割を解説

    JavaFXにおけるシーングラフとは JavaFXでは、GUIアプリケーションは「シーングラフ(Scene Graph)」と呼ばれるデータ構造を用いて構築されます。シーングラフは、モダンなグラフィカルアプリケーションで広く採用されている、ツリー構造に似たデータ構造です。アプリケーションの起点となるものであり、複数のノード(Node)の集合体として表現されます。 JavaFXで何かを画面に表示するには、ノードを使ってシーングラフを構築し、それをStageクラスのオブジェクトに設定する必要があります。Stageクラスは、JavaFXアプリケーションにおける最上位のコンテナとして機能します。 ノード

  2. Java Swingのアーキテクチャとは?特徴とMVCモデルをわかりやすく解説

    Java Swingは、Javaプログラム向けにグラフィカルユーザーインターフェース(GUI)を提供するAPI群です。Java Swingは、それ以前のAPIであるAbstract Window Toolkit(AWT)をベースに開発されました。AWTと比べて、より豊富で洗練されたGUIコンポーネントを備えており、シンプルな部品から複雑なツリーやテーブルまで幅広く利用できます。さらに、プラグイン可能なルック&フィール(Pluggable Look and Feel)機能により、Javaプログラムの外観を基盤となるプラットフォームから独立して制御できる点も大きな特長です。 Java Swingの