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

JavaFXで楕円(Ellipse)を描画する方法を初心者向けに解説

楕円は、中心点からの距離が一定ではないものの、閉じたループを形成する曲線です。JavaFXでは、この楕円を簡単に描画できるよう、javafx.scene.shape.Ellipse クラスが標準で提供されています。本記事では、Ellipseクラスの基本的なプロパティと、実際に楕円を画面に表示するまでの手順を解説します。

Ellipseクラスの主なプロパティ

Ellipseクラスには、楕円の位置と大きさを決めるための4つの重要なプロパティが用意されています。

  • centerX − 楕円の中心のX座標を表します。setCenterX() メソッドで値を設定できます。
  • centerY − 楕円の中心のY座標を表します。setCenterY() メソッドで値を設定できます。
  • radiusX − 楕円の幅(水平方向の半径)をピクセル単位で表します。setRadiusX() メソッドで値を設定できます。
  • radiusY − 楕円の高さ(垂直方向の半径)をピクセル単位で表します。setRadiusY() メソッドで値を設定できます。

なお、radiusXとradiusYに同じ値を設定すると、正円として描画されます。つまり、Ellipseクラスは円の描画にも利用できる汎用的なクラスです。

楕円を作成する基本の手順

JavaFXで楕円を描画するには、以下のステップを実行します。

  • Ellipseクラスをインスタンス化します。
  • セッターメソッドを使うか、コンストラクタの引数として値を渡して、必要なプロパティを設定します。
  • 作成したノード(図形)をGroupオブジェクトに追加し、Sceneに配置します。

また、new Ellipse(centerX, centerY, radiusX, radiusY) のように、引数付きのコンストラクタを使えば、インスタンス化と同時にすべてのプロパティを指定することも可能です。

サンプルコード

次の例では、異なるサイズ・色の2つの楕円を1つのシーン上に描画しています。

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.Ellipse;

public class DrawingEllipse extends Application {
    public void start(Stage stage) {
        // 楕円1を生成
        Ellipse ellipse1 = new Ellipse();
        // 楕円1の位置とサイズを設定
        ellipse1.setCenterX(200.0);
        ellipse1.setCenterY(150.0);
        ellipse1.setRadiusX(100);
        ellipse1.setRadiusY(50);
        // 塗りつぶし色と枠線を設定
        ellipse1.setFill(Color.DARKCYAN);
        ellipse1.setStrokeWidth(8.0);
        ellipse1.setStroke(Color.DARKSLATEGREY);

        // 楕円2を生成
        Ellipse ellipse2 = new Ellipse();
        // 楕円2の位置とサイズを設定
        ellipse2.setCenterX(450.0);
        ellipse2.setCenterY(150.0);
        ellipse2.setRadiusX(35);
        ellipse2.setRadiusY(100);
        // 塗りつぶし色と枠線を設定
        ellipse2.setFill(Color.CHOCOLATE);
        ellipse2.setStrokeWidth(8.0);
        ellipse2.setStroke(Color.BROWN);

        // シーンを構築して表示
        Group root = new Group(ellipse1, ellipse2);
        Scene scene = new Scene(root, 595, 300, Color.BEIGE);
        stage.setTitle("Drawing an Ellipse");
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String args[]) {
        launch(args);
    }
}

実行結果

このプログラムを実行すると、背景がベージュ色のウィンドウが開き、左側に横長のダークシアン色の楕円、右側に縦長のチョコレート色の楕円が表示されます。それぞれの楕円には、ダークスレートグレーおよびブラウンの太い枠線が付いています。

JavaFXで楕円(Ellipse)を描画する方法を初心者向けに解説

まとめ

JavaFXで楕円を描画するには、Ellipseクラスのインスタンスを作成し、centerX・centerYで位置を、radiusX・radiusYで大きさを指定するだけです。setFill()やsetStroke()などのメソッドを組み合わせれば、塗りつぶし色や枠線も自由にカスタマイズでき、GUIアプリケーションに多彩な図形を取り入れることができます。

  1. JavaFXでスライダー(Slider)を作成する方法をわかりやすく解説

    JavaFXのSliderクラスとはJavaFXには、Sliderと呼ばれるクラスが標準で用意されています。このクラスは、連続的な範囲の値を表示・選択できるスライダーコンポーネントを表します。スライダーは、数値が表示される「トラック」と、その上を移動して値を指し示す「つまみ(サム)」で構成されています。コンストラクタやプロパティを通じて、スライダーの最大値・最小値・初期値を自由に指定することが可能です。スライダーの作成手順JavaFXでスライダーを作成する基本の手順は以下の通りです。Sliderクラスをインスタンス化する — 最小値・最大値・初期値を引数に指定できます。必要なプロパティを設定す

  2. 【JavaFX】2つのつまみを持つスライダー(RangeSlider)を作成する方法

    スライダーとは、連続した値の範囲を視覚的に表示するためのUIコンポーネントです。トラック上には数値が表示されており、その値を指し示す「つまみ(サム)」がトラックに沿って移動します。スライダーには最大値・最小値・初期値を自由に設定することができます。 標準のJavaFXスライダーの限界 JavaFXが標準で提供するスライダーには、つまみは1つしかありません。最小値と最大値の両方を選択できる「2つのつまみを持つスライダー」を作成したい場合は、外部ライブラリである org.controlsfx.control を利用する必要があります。 手順1:Maven依存関係を追加する このライブラリを使用す