忍者ブログ

軽Lab

 Javaを中心とした、プログラミング関係のナレッジベース

Home > > JavaFX テキスト出力

JavaFX テキスト出力

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Home > > JavaFX テキスト出力

- ランダム記事 -

コメント

ただいまコメントを受けつけておりません。

Home > JavaFX入門 > JavaFX テキスト出力

JavaFX テキスト出力

JavaFXでテキストを出力する方法を見ていく。テキスト出力にはTextクラスを利用する。Textクラスを利用すると、単に文字を出力するだけでなく以下のようなことも可能である。

  1. フォントサイズ、ボールド、イタリック、下線、文字寄せ等が指定可能
  2. インストール済みフォントの出力
  3. フォントファイル(TrueType (.ttf)など)の出力
  4. 袋文字の出力
  5. 自動改行(折り返し)機能

また、『JavaFX 画像エフェクト』で記述した各種エフェクトについても、もちろん適用可能である。

■ よく使うフォント一覧(Windows)

フォント名の一覧は、Font.getFamilies関数で取得できる。フォント指定は文字列で行うが、指定に使うフォント名は日本語でないものが大半である。よく使うフォント名は以下のようになっている。

フォント名 内容
Meiryo
Meiryo UI
メイリオ
MS Gothic
MS UI Gothic
MS PGothic
MSゴシック
MS Mincho
MS PMincho
MS明朝
Times New Roman タイムズ・ニュー・ロマン

■ サンプルコード

Textクラスを利用するサンプルコードを以下に出力する。

◇サンプルコード
package application_fx;

import java.io.File;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.scene.text.TextAlignment;
import javafx.stage.Stage;

public class TestFont extends Application {

    public static void main(String[] args) {
        launch(args);
    }
    
    @Override
    public void start(Stage primaryStage) throws Exception
    {
        // シーングラフの作成
        VBox   root     = new VBox( 10.0f );
        
        // ボールド、イタリック、下線、文字寄せ
        Text    t       = new Text( "ボールド、ITALIC、下線、文字寄せ" );
        t.setFont( Font.font( "Meiryo UI" , FontWeight.BOLD  , FontPosture.ITALIC , 35 ) );
        t.setTextAlignment( TextAlignment.CENTER );
        t.setWrappingWidth( 700.0 );
        t.setUnderline( true );
        root.getChildren().add( t );
        
        // フォントの設定(インストール済みフォント)
        Text    t1      = new Text("インストール済みフォントの読込");
        t1.setFont( Font.font( "MS Mincho" , 45 ) );
        root.getChildren().add( t1 );
        
        // フォントの設定(フォントファイルの読み込み)
        Text    t2      = new Text("フォントファイルからの読込");
        t2.setFont( Font.loadFont( new File( "font/chogokubosogothic_5.ttf" ).toURI().toString() , 50 ) );
        root.getChildren().add( t2 );
        
        // 袋文字
        Text    t3      = new Text("袋文字で出力");
        t3.setFont( Font.font( null , 75 ) );
        t3.setFill( Color.ALICEBLUE );
        t3.setStroke( Color.CORNFLOWERBLUE );
        root.getChildren().add( t3 );
        
        // テキスト表示幅を指定することで
        // 自動改行(折り返し)をさせる
        Text    t4  = new Text( 300.0, 450.0, "自動折り返しです。『\\n』で明示的に改行\nもできます。" );
        t4.setFont( Font.font( "Meiryo UI" , 20 ) );
        t4.setWrappingWidth( 200.0 );
        root.getChildren().add( t4 );
        
        // シーン作成
        Scene   scene   = new Scene( root , 750 , 400 , Color.web( "9FCC7F" ) );
        
        // ステージ設定
        primaryStage.setTitle("Test Font");
        primaryStage.setScene(scene);
        primaryStage.show();

    }
    

}
◇利用リソース
フォント:chogokubosogothic_5.ttf(提供元:Line Font)

◇実行結果


◇解説
  1. ボールドなど文字効果の指定はFont.font関数で行う(30行目)。また、文字寄せについては、文字列の表示幅を指定した上で文字寄せ方向を指定する(31行目~32行目)。下線はText.setUnderline関数を利用することにより設定する(33行目)。
  2. フォントの設定については、インストール済みフォントを利用する場合はFont.font関数を、ファイルから読み込む場合はFont.loadFont関数を利用する(36行目~44行目)。
  3. 文字シェイプの外枠を設定すると袋文字が表現できる(46行目~51行目)。
  4. 自動改行(折り返し)については、Text.setWrappingWidth関数でテキスト表示幅を設定することで、幅以上の文字列を自動で改行する(53行目~58行目)。

■ 参照

  1. JavaFXアプリケーション内のテキストの使用
  2. JavaDoc - クラスText
  3. JavaDoc - クラスFont
- PR -
Home > JavaFX入門 > JavaFX テキスト出力

- ランダム記事 -

コメント

ただいまコメントを受けつけておりません。

QRコード

プロフィール

管理者:
連絡はContactよりお願いします。

PR