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

JavaFXでテキストノードにフォントを設定する方法をわかりやすく解説

JavaFXにおいて、テキストノードは javafx.scene.text.Text クラスで表されます。デフォルト状態で作成されたテキストは、次のように表示されます。

JavaFXでテキストノードにフォントを設定する方法をわかりやすく解説

テキストノードに任意のフォントを設定する

JavaFXでテキストノードに好みのフォントを設定するには、setFont() メソッドを使用します。このメソッドは、javafx.scene.text.Font クラスのオブジェクトを引数として受け取ります。

Font クラスはJavaFXにおけるフォントを表すクラスで、font() メソッドの複数のバリエーションが用意されています。主なものは以下のとおりです。

font(double size)
font(String family)
font(String family, double size)
font(String family, FontPosture posture, double size)
font(String family, FontWeight weight, double size)
font(String family, FontWeight weight, FontPosture posture, double size)

各引数の意味は次のとおりです。

  • size(double型): フォントサイズを指定します。

  • family(String型): テキストに適用したいフォントファミリー(書体)の名前を指定します。インストールされているフォントファミリー名の一覧は、getFamilies() メソッドで取得できます。

  • weight: フォントの太さを指定します。FontWeight列挙型の定数(BLACK、BOLD、EXTRA_BOLD、EXTRA_LIGHT、LIGHT、MEDIUM、NORMAL、SEMI_BOLD、THIN)のいずれかを使用します。

  • posture: フォントの傾き(スタイル)を指定します。FontPosture列挙型の定数(REGULAR、ITALIC)のいずれかを使用します。

これらのメソッドはすべて静的(static)メソッドであり、Fontオブジェクトを返します。したがって、テキストノードにフォントを設定する手順は以下のようになります。

  • Textクラスをインスタンス化します。

  • セッターメソッドを使うか、コンストラクタの引数として渡して、位置や文字列などの基本プロパティを設定します。

  • font() メソッドのいずれかを使ってFontオブジェクトを作成します。

  • setFont() メソッドを使って、作成したフォントをテキストに適用します。

  • 作成したノードをGroupオブジェクトに追加します。

サンプルコード

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.Scanner;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
public class SettingFont extends Application {
    public void start(Stage stage) throws FileNotFoundException {
        // テキストファイルの内容を読み込む
        InputStream inputStream = new FileInputStream("D:\\sample.txt");
        Scanner sc = new Scanner(inputStream);
        StringBuffer sb = new StringBuffer();
        while(sc.hasNext()) {
            sb.append(" "+sc.nextLine()+"\n");
        }
        String str = sb.toString();
        // Textオブジェクトを作成
        Text text = new Text();
        // テキストの基本プロパティを設定
        text.setText(str);
        text.setX(10.0);
        text.setY(25.0);
        text.setWrappingWidth(580);
        // Fontオブジェクトを作成
        String font_name = Font.getFamilies().get(25);
        System.out.println("Font Name:"+font_name);
        int size = 25;
        Font font = Font.font(font_name, FontWeight.BOLD, FontPosture.REGULAR, size);
        // テキストにフォントを設定
        text.setFont(font);
        // ステージの設定
        Group root = new Group(text);
        Scene scene = new Scene(root, 595, 300, Color.BEIGE);
        stage.setTitle("Displaying Text");
        stage.setScene(scene);
        stage.show();
    }
    public static void main(String args[]){
        launch(args);
    }
}

sample.txt の内容

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

JavaFX is a Java library used to build Rich Internet Applications. The applications written using this library can run consistently across multiple platforms. The applications developed using JavaFX can run on various devices such as Desktop Computers, Mobile Phones, TVs, Tablets, etc..
To develop GUI Applications using Java programming language, the programmers rely on libraries such as Advanced Windowing Tool kit and Swing. After the advent of JavaFX, these Java programmers can now develop GUI applications effectively with rich content.

実行結果

Font Name: Brush Script MT

このプログラムを実行すると、次のようなウィンドウが表示されます。

JavaFXでテキストノードにフォントを設定する方法をわかりやすく解説

  1. Tkinterでテキストのフォントを設定する方法をわかりやすく解説

    Tkinterには、ウィジェットにさまざまな機能を持たせるための組み込みメソッドや関数が多数用意されています。Tkinterアプリケーションでは、font(フォントファミリー, フォントサイズ, スタイル)属性を使用することで、テキストウィジェットのフォントプロパティを自由にカスタマイズできます。このタプルは、Textウィジェットのコンストラクタ内で直接宣言することが可能です。サンプルコード以下の例では、カスタマイズしたフォントプロパティを持つテキストウィジェットを作成しています。# tkinterライブラリをインポート from tkinter import * from tkinter i

  2. Androidでフォントを自由に変更する方法|標準機能からランチャー活用まで徹底解説

    Android端末は、ユーザーが自由にカスタマイズできる点で高く評価されています。Apple製品がすべて同じ外観と操作性であるのに対し、Androidではさまざまな調整を加えて、端末の見た目や使い勝手を自分好みに仕上げることができます。中でも人気の高いカスタマイズ方法のひとつが、システムフォントの変更です。メニューやメッセージなどに使われるフォントを別のものへ切り替えるのは、実はとても簡単です。 標準機能でフォントを変更できる端末もある 各メーカーが競合との差別化を図るために、純正Androidに独自の手を加えていることは周知の事実です。そのため、Samsung製スマホのユーザーインターフェー