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

JavaFXのtextOrigin(テキストオリジン)とは?VPosで原点を指定する方法を解説

JavaFXでは、ノードの配置に使用する通常のローカル座標系に加えて、テキストノード専用にもう一つの座標系が用意されています。

textOriginプロパティは、親座標系におけるテキストノードの座標原点を指定するためのものです。このプロパティに値を設定するには、setTextOrigin()メソッドを使用します。このメソッドは、VPosという列挙型の定数を引数として受け取ります。

VPos列挙型の4つの定数

VPos列挙型には、以下の4つの定数が定義されています。

  • BASELINE:テキストのベースライン(文字の下端基準線)を原点として扱います。
  • BOTTOM:テキスト全体の下端を原点として扱います。
  • CENTER:テキスト全体の中央を原点として扱います。
  • TOP:テキスト全体の上端を原点として扱います。

サンプルコード

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.Scanner;
import javafx.application.Application;
import javafx.geometry.VPos;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.scene.text.Text;

public class TextOriginExample extends Application {
   public void start(Stage stage) throws FileNotFoundException {
      // テキストファイルの内容を読み込む
      InputStream inputStream = new FileInputStream("D:\\sample_text.txt");
      Scanner sc = new Scanner(inputStream);
      StringBuffer sb = new StringBuffer();
      while(sc.hasNext()) {
         sb.append(" "+sc.nextLine()+"\n");
      }
      // Textオブジェクトを作成
      Text text = new Text(10.0, 25.0, sb.toString());
      // テキストの折り返し幅を設定
      text.setWrappingWidth(565);
      // 垂直方向の位置指定(原点)を設定
      text.setTextOrigin(VPos.TOP);
      // ステージの設定
      Group root = new Group(text);
      Scene scene = new Scene(root, 595, 150, Color.BEIGE);
      stage.setTitle("Text Origin (TOP)");
      stage.setScene(scene);
      stage.show();
   }
   public static void main(String args[]){
      launch(args);
   }
}

sample.txtの内容

ここでは、sample_text.txtファイルの内容が以下の通りであると仮定します。

Tutorials Point originated from the idea that there exists a class of readers who respond better 
to online content and prefer to learn new skills at their own pace from the comforts of their drawing rooms.
The journey commenced with a single tutorial on HTML in 2006 and elated by the response it generated, 
we worked our way to adding fresh tutorials to our repository which now proudly flaunts a wealth of 
tutorials and allied articles on topics ranging from programming languages to web designing to academics 
and much more.

実行結果

上記のコードを実行すると、TOPを指定した場合、テキストブロックの上端が指定座標の原点となり、次のように表示されます。

JavaFXのtextOrigin(テキストオリジン)とは?VPosで原点を指定する方法を解説

同様に、setTextOrigin()に渡す値を変更すると、原点の位置が変わり、表示結果もそれに応じて変化します。

BASELINEを指定した場合 −

JavaFXのtextOrigin(テキストオリジン)とは?VPosで原点を指定する方法を解説

BOTTOMを指定した場合 −

JavaFXのtextOrigin(テキストオリジン)とは?VPosで原点を指定する方法を解説

CENTERを指定した場合 −

JavaFXのtextOrigin(テキストオリジン)とは?VPosで原点を指定する方法を解説

このように、textOriginプロパティを使い分けることで、テキストノードを親座標系のどの位置を基準に配置するかを柔軟に制御できます。特にベースラインを揃えたいレイアウトや、複数行テキストの垂直配置を調整したい場合に便利です。

  1. JavaFXのパス要素とは?種類と使い方をわかりやすく解説

    javafx.scene.shape パッケージには、2D図形を描画するためのさまざまなクラスが用意されています。しかし、これらは直線、円、多角形、楕円といった基本的な(プリミティブな)図形に限られます。より複雑なカスタム図形を描きたい場合は、Pathクラスを使用する必要があります。 Pathクラスとは Pathクラスは、図形の幾何学的な輪郭を表すクラスです。このクラスを使うことで、独自のカスタムパスを自由に描画できます。 カスタムパスを描くために、JavaFXでは複数の「パス要素」が提供されており、これらはすべて javafx.scene.shape パッケージ内のクラスとして利用可能です。

  2. 画像処理におけるモルフォロジカルグラディエント(形態学的勾配)とは?

    収縮(Erosion)と膨張(Dilation)は、モルフォロジー(形態学)操作における2つの基本的な処理です。その名の通り、モルフォロジー操作とは、画像をその「形状」に基づいて処理する一連の操作を指します。 膨張と収縮の基本 膨張操作では、画像の境界部分に新たなピクセルが追加されます。一方、収縮操作では、画像の境界からピクセルが除去されます。膨張処理によって追加されるピクセルの総数は、使用する構造要素(カーネル)のサイズや形状によって決まります。 モルフォロジカルグラディエントとは モルフォロジカルグラディエント(形態学的勾配)とは、「画像の膨張結果」と「画像の収縮結果」の差分を取る操作です