HOWTO · Java
JavaFX テキスト回転
このチュートリアルでは、JavaFX でテキストを回転させる方法を示します。
このページの内容
テキストノードは、JavaFX.scene.text.Text クラスを使用して作成でき、テキストを回転するには、JavaFX で setRotate() を使用します。このチュートリアルでは、JavaFX でテキストを回転させる方法を示します。
JavaFX テキスト回転
setRotate() メソッドは、テキストを回転させるために JavaFX で使用されます。テキストノードはシーンに配置され、x と y の位置を中心に回転します。
これらの x および y の位置は、Text クラスをインスタンス化するときにテキストに渡されます。
構文:
text.setRotate(int);
上記の構文の int は、テキストの回転値です。以下は、JavaFX でテキストを回転させる手順です。
-
Applicationクラスを拡張するクラスを作成します。 -
startメソッドでタイトルをステージに設定します。 -
Groupクラスをインスタンス化してグループを作成します。 -
Sceneクラスをインスタンス化し、Groupを渡すことでシーンを作成します。 -
x、y、およびRGBを指定された値で初期化します。 -
Textクラスをインスタンス化し、x、y、およびtextの値を渡してテキストを作成します。 -
SetFill()メソッドでテキストに色を塗りつぶします。 -
setRotate()メソッドを使用して回転角度を設定します。 -
textをgroupに追加します。 -
シーンをステージに渡し、
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 度回転します。
出力:
これは、ランダムな x と y の位置とランダムな回転角度に基づいて複数のテキストを回転させる別の例です。
サンプルコード:
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);
}
}
上記のコードは、ランダムな x、y、RGB、および回転角度を使用して複数のテキストを回転します。
出力: