検索
連載

デスクトップの常識プログラマーの常識をJavaで身につける(2)(2/3 ページ)

本連載は、「プログラマーの常識をJavaで身に付ける」ことを目標としています。Java言語やその文法は一通り理解しているが、「プログラマー」としては初心者、という方を対象とします。Javaコアパッケージを掘り下げることにより「プログラマーの常識」を身に付けられるように話を進めていきたい、と考えています。最初は、色・フォント・マウスポインタ(カーソル)についてです。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

「フォント」はOSに登録済みのものを使う

 次に、「フォント」を見ていきましょう。そもそも、フォントとは何なのかについては@IT Insider's Computer Dictionaryの[フォント]が詳しいので、そこを参照してみてください。

Windows XPワードパッドの「フォント」を見る

 まずは、Windows XPにインストール時から付属するワードパッドを使って、フォントがどのようなものなのか再確認してみましょう。ワードパッドのフォントドロップダウンには、Windows XPで利用可能なさまざまなフォントが一覧表示されます。文字を選択してフォントやサイズを変更してみましょう。

図8 ワードパッドのドロップダウンによるフォント変更
図8 ワードパッドのドロップダウンによるフォント変更

 次に、[書式]→[フォント]メニューによる「フォント」ダイアログを用いたフォント設定も行ってみましょう。

図9 「フォント」ダイアログ
図9 「フォント」ダイアログ

 ここで、フォントの種類やサイズを変更すると、画面上での表示や印刷を行う際のフォントの属性に変化が表れます。

 フォントを「MS Pゴシック」に設定していると、下の図10のように表示されます。

図10 ワードパッド(ゴシック)
図10 ワードパッド(ゴシック)

 これを「MS 明朝」に変更すると、下の図11のように表示されます。

図11 ワードパッド(明朝)
図11 ワードパッド(明朝)

 ボールドイタリック、あるいはフォントのサイズを変えるなどして、フォントが変化することを確認してください。

フォントを変更するAPIを利用する [java.awt.Font]

 それでは、フォントの変更をプログラミングでどのように実現できるのかを見ていきましょう。Java言語で、基本的にフォントをつかさどるクラスは「java.awt.Font」となります。下記のソースコードを実行してください。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

図12 フォント変更を確認するサンプル(ゴシック)
図12 フォント変更を確認するサンプル(ゴシック)

 行(2)に注目してください。JPanelのsetFontメソッドを使って、フォントを変更しています。フォントはFontクラスのコンストラクタに「フォント名」「フォントのスタイル定数」「フォントのポイントサイズ」を与えることにより作成できます。フォント名には、フォントファミリ名の指定を行う方法もありますが、ここでは説明を割愛します。詳しくは、APIリファレンスを参照ください。

 次に、フォントを「MS 明朝」へと変更しましょう。行(2)を下記のように書き換えて実行してください。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

ワンポイント

「MS 明朝」の個所は全角文字、半角文字が別のものとして扱われます。この例におけるフォント名はすべて全角で指定してください。


 ワードパッドで試したのと同様に、フォントが変化していることを確認してみましょう。

図13 フォント変更を確認するサンプル(明朝)
図13 フォント変更を確認するサンプル(明朝)

 さらに「Font.PLAIN」の個所を、「Font.BOLD | Font.ITALIC」に変更してみましょう。行(2)を下記のように書き換えて実行してください。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

図14 フォント変更を確認するサンプル(ボールドイタリック)
図14 フォント変更を確認するサンプル(ボールドイタリック)

 これは、先に出てきた「フォント」ダイアログで、スタイルにボールドとイタリックを同時に指定したものと同様です。

フォントの一覧を取得する

 今度は、JavaのAPIを使ってフォントの一覧を取得します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 行(3)のGraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()によって、利用可能なフォントの一覧をjava.lang.Stringの配列として取得できます。

 実行すると、フォント一覧の始めの部分をウィンドウに表示します。また、標準出力にもフォント一覧を出力しています。

図15 フォントを一覧列挙するサンプル
図15 フォントを一覧列挙するサンプル

 Windows XPのフォントダイアログで見た一覧と同様のものがプログラムで取得できていることが分かります。また、ここで得られたフォント名をjava.awt.Fontのコンストラクタに渡すと、そのフォントを利用できます。

 さらに、行(4)を下記のように書き換えて実行してください。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

図16 フォントを一覧列挙するサンプル(フォント変更後)
図16 フォントを一覧列挙するサンプル(フォント変更後)

ワンポイント

皆さんの環境に導入されているフォントを指定する必要があります。「DF行書体」はこの記事を書いているマシンOSにたまたまインストールされていたフォントにすぎません。皆さんの環境に合わせて、フォント名を読み替えてください。くれぐれも、フォント名の全角・半角をお間違えなきよう。


ワンポイント

日本語の文字列に英語フォントを選択した場合には、日本語は表示されず、英数字のみが表示されるような現象が起こる場合があります。


Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る