HOWTO · Java

JavaFX テキスト回転

このチュートリアルでは、JavaFX でテキストを回転させる方法を示します。

このページの内容

テキストノードは、JavaFX.scene.text.Text クラスを使用して作成でき、テキストを回転するには、JavaFX で setRotate() を使用します。このチュートリアルでは、JavaFX でテキストを回転させる方法を示します。

JavaFX テキスト回転

setRotate() メソッドは、テキストを回転させるために JavaFX で使用されます。テキストノードはシーンに配置され、xy の位置を中心に回転します。

これらの x および y の位置は、Text クラスをインスタンス化するときにテキストに渡されます。

構文:

text.setRotate(int);

上記の構文の int は、テキストの回転値です。以下は、JavaFX でテキストを回転させる手順です。

  • Application クラスを拡張するクラスを作成します。
  • start メソッドでタイトルをステージに設定します。
  • Group クラスをインスタンス化してグループを作成します。
  • Scene クラスをインスタンス化し、Group を渡すことでシーンを作成します。
  • xy、および RGB を指定された値で初期化します。
  • Text クラスをインスタンス化し、xy、および text の値を渡してテキストを作成します。
  • SetFill() メソッドでテキストに色を塗りつぶします。
  • setRotate() メソッドを使用して回転角度を設定します。
  • textgroup に追加します。
  • シーンをステージに渡し、Show メソッドでステージを表示し、main メソッドでアプリケーションを起動します。

上記の手順に基づいて例を実装してみましょう。

完全なソースコード:

package delftstack;

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class JavaFX_TextRotate extends Application {
  @Override
  public void start(Stage Demo_Stage) {
    Demo_Stage.setTitle("Text");
    Group Group_Root = new Group();
    Scene Demo_Scene = new Scene(Group_Root, 300, 250, Color.WHITE);
    int x = 150;
    int y = 150;
    int RED = 30;
    int GREEN = 40;
    int BLUE = 50;

    Text Demo_Text = new Text(x, y, "Delftstack");

    Demo_Text.setFill(Color.rgb(RED, GREEN, BLUE, .99));
    Demo_Text.setRotate(45);
    Group_Root.getChildren().add(Demo_Text);

    Demo_Stage.setScene(Demo_Scene);
    Demo_Stage.show();
  }
  public static void main(String[] args) {
    Application.launch(args);
  }
}

上記のコードは、テキストを 45 度回転します。

出力:

JavaFX テキストの回転

これは、ランダムな xy の位置とランダムな回転角度に基づいて複数のテキストを回転させる別の例です。

サンプルコード:

package delftstack;

import java.util.Random;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class JavaFX_Rotate extends Application {
  @Override
  public void start(Stage Demo_Stage) {
    Demo_Stage.setTitle("TEXT");
    Group Group_Root = new Group();
    Scene Demo_Scene = new Scene(Group_Root, 300, 250, Color.WHITE);
    Random Random_Number = new Random(System.currentTimeMillis());
    for (int i = 0; i < 100; i++) {
      int x = Random_Number.nextInt((int) Demo_Scene.getWidth());
      int y = Random_Number.nextInt((int) Demo_Scene.getHeight());
      int RED = Random_Number.nextInt(255);
      int GREEN = Random_Number.nextInt(255);
      int BLUE = Random_Number.nextInt(255);

      Text Demo_Text = new Text(x, y, "Delftstack");

      int Rotation = Random_Number.nextInt(180);
      Demo_Text.setFill(Color.rgb(RED, GREEN, BLUE, .99));
      Demo_Text.setRotate(Rotation);
      Group_Root.getChildren().add(Demo_Text);
    }

    Demo_Stage.setScene(Demo_Scene);
    Demo_Stage.show();
  }

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

上記のコードは、ランダムな xyRGB、および回転角度を使用して複数のテキストを回転します。

出力:

JavaFX によるテキストの回転