フォントを指定する

広告

文字列を描画する際にフォントを指定する方法を確認します。フォントを指定するにはGraphics2Dクラスの親クラスであるGraphicsクラスで用意されている「setFont」メソッドを使います。

このグラフィックスコンテキストのフォントを、指定されたフォントに設定し
ます。このグラフィックスコンテキストを使用する、これ以降のテキスト描画
操作は、このフォントを使用します。null 引数は通知なく無視されます。

パラメータ:
  font - フォント

1番目の引数には設定するフォントを表すFontクラスのオブジェクトを指定します。

フォントにはフォントの種類の他にサイズなどを指定することが出来ます。詳しくは『Fontクラス』を参照して下さい。

具体的には次のように記述します。

public void paintComponent(Graphics g){
  Graphics2D g2 = (Graphics2D)g;

  Font font = new Font("Arial", Font.BOLD, 12);
  g2.setFont(font);

  g2.drawString("Hello Java2D", 100, 100);
}

サンプルプログラム

簡単なサンプルを一度試してみます。

StringTest2.java

import javax.swing.*;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.Font;

public class StringTest2 extends JPanel{

  public static void main(String[] args){
    JFrame frame = new JFrame();

    StringTest2 app = new StringTest2();
    frame.getContentPane().add(app);

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBounds(10, 10, 300, 200);
    frame.setTitle("タイトル");
    frame.setVisible(true);
  }

  public void paintComponent(Graphics g){
    Graphics2D g2 = (Graphics2D)g;

    g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, 
                        RenderingHints.VALUE_TEXT_ANTIALIAS_ON);

    Font font1 = new Font("Arial", Font.PLAIN, 16);
    g2.setFont(font1);

    g2.drawString("Hello Java2D", 30, 40);

    Font font2 = new Font("MS 明朝", Font.BOLD, 32);
    g2.setFont(font2);

    g2.drawString("日本語文字列", 30, 120);
  }
}

上記をコンパイルした後で実行すると次のように表示されます。

フォントを指定して文字列を描画する

( Written by Tatsuo Ikura )