Javafx-2dshapes-lineto
JavaFX-2Dシェイプパス要素ライン
パス要素 line は、現在の位置から指定された座標内のポイントに直線を描くために使用されます。
*LineTo* という名前のクラスで表されます。 このクラスは、パッケージ *javafx.scene.shape* に属します。
このクラスには、doubleデータ型の2つのプロパティがあります-
- X -現在の位置から線を引くポイントのx座標。
- Y -現在位置から線が引かれるポイントのy座標。
線を引くには、これらのプロパティに値を渡す必要があります。 これは、以下に示すように、インスタンス化の時点で、同じ順序でこのクラスのコンストラクターにそれらを渡すことによって行うことができます-
LineTO line = new LineTo(x, y);
または、次のようにそれぞれのセッターメソッドを使用して-
setX(value);
setY(value);
PathElementラインを描画する手順
JavaFXの現在の位置から指定されたポイントに線を引くには、以下の手順に従います。
ステップ1:クラスを作成する
Javaクラスを作成し、パッケージ javafx.application の Application クラスを継承し、このクラスの* start()*メソッドを次のように実装します。
public class ClassName extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
}
}
ステップ2:パスクラスオブジェクトを作成する
以下に示すように、パスクラスオブジェクトを作成できます。
//Creating a Path object
Path path = new Path();
ステップ3:パスの設定
*MoveTo* パス要素を作成し、XY座標を線の始点に設定して座標(100、150)にします。 これは、以下に示すようにクラスMoveToのメソッド* setX()*および* setY()*を使用して実行できます。
//Moving to the starting point
MoveTo moveTo = new MoveTo();
moveTo.setX(100.0f);
moveTo.setY(150.0f);
ステップ4:クラスLineToのオブジェクトの作成
次のように、パッケージ javafx.scene.shape に属する LineTo という名前のクラスをインスタンス化して、パス要素行を作成します。
//Creating an object of the class LineTo
LineTo lineTo = new LineTo();
ステップ5:プロパティをLine要素に設定する
現在の位置から線を引くポイントの座標を指定します。 これは、次のコードブロックに示すように、それぞれのセッターメソッドを使用してプロパティxおよびyを設定することで実行できます。
//Setting the Properties of the line element
lineTo.setX(500.0f);
lineTo.setY(150.0f);
手順6:パスクラスの監視可能なリストに要素を追加する
以下に示すように、前の手順で作成したパス要素 MoveTo および LineTo を Path クラスの監視可能なリストに追加します-
//Adding the path elements to Observable list of the Path class
path.getElements().add(moveTo);
path.getElements().add(lineTo);
ステップ7:グループオブジェクトの作成
パッケージ javafx.scene に属する Group という名前のクラスをインスタンス化して、グループオブジェクトを作成します。
前の手順で作成したLine(ノード)オブジェクトをパラメーターとしてGroupクラスのコンストラクターに渡します。 これは、以下に示すようにグループに追加するために行う必要があります-
Group root = new Group(line);
ステップ8:シーンオブジェクトの作成
パッケージ javafx.scene に属する Scene という名前のクラスをインスタンス化して、シーンを作成します。 このクラスに、前の手順で作成したGroupオブジェクト*(root)*を渡します。
ルートオブジェクトに加えて、画面の高さと幅を表す2つのdoubleパラメーターを、Groupクラスのオブジェクトとともに次のように渡すこともできます。
Scene scene = new Scene(group ,600, 300);
ステップ9:ステージのタイトルを設定する
*stage* クラスの* setTitle()*メソッドを使用して、ステージにタイトルを設定できます。 *primaryStage* は、シーンクラスのstartメソッドにパラメーターとして渡されるStageオブジェクトです。
*primaryStage* オブジェクトを使用して、シーンのタイトルを次のように *Sample Application* として設定します。
primaryStage.setTitle("Sample Application");
ステップ10:ステージにシーンを追加する
*Stage* という名前のクラスの* setScene()*メソッドを使用して、Sceneオブジェクトをステージに追加できます。 以下に示すように、このメソッドを使用して、前の手順で準備したシーンオブジェクトを追加します-
primaryStage.setScene(scene)
ステップ11:ステージのコンテンツを表示する
次のように Stage クラスの* show()*という名前のメソッドを使用して、シーンのコンテンツを表示します。
primaryStage.show();
ステップ12:アプリケーションの起動
次のように、メインメソッドから Application クラスの* launch()*静的メソッドを呼び出して、JavaFXアプリケーションを起動します。
public static void main(String args[]){
launch(args);
}
例
次のプログラムは、JavaFXのクラスPathを使用して、現在のポイントから指定された位置まで直線を描く方法を示しています。 このコードを LineToExample.java という名前のファイルに保存します。
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.shape.LineTo;
import javafx.scene.shape.MoveTo;
import javafx.scene.shape.Path;
import javafx.stage.Stage;
public class LineToExample extends Application {
@Override
public void start(Stage stage) {
//Creating a Path object
Path path = new Path();
//Moving to the starting point
MoveTo moveTo = new MoveTo();
moveTo.setX(100.0f);
moveTo.setY(150.0f);
//Instantiating the LineTo class
LineTo lineTo = new LineTo();
//Setting the Properties of the line element
lineTo.setX(500.0f);
lineTo.setY(150.0f);
//Adding the path elements to Observable list of the Path class
path.getElements().add(moveTo);
path.getElements().add(lineTo);
//Creating a Group object
Group root = new Group(path);
//Creating a scene object
Scene scene = new Scene(root, 600, 300);
//Setting title to the Stage
stage.setTitle("Drawing a Line");
//Adding scene to the stage
stage.setScene(scene);
//Displaying the contents of the stage
stage.show();
}
public static void main(String args[]){
launch(args);
}
}
次のコマンドを使用して、コマンドプロンプトから保存したJavaファイルをコンパイルして実行します。
javac LineToExample.java
java LineToExample
上記のプログラムは、実行時に、以下に示すように、現在の位置から指定されたポイントまで描画される直線を表示するJavaFXウィンドウを生成します。