フォントの取得と次の課題

フォントの取得ができた。
Swingばかり見ていたので気づかなかったが、awtのComponentクラスにgetFont()というメソッドが実装されていてこれで現在コンポーネントに設定されているフォントを取得することができる。もちろん、Swingでもそのまま使うことが可能だ。
FontクラスにはderiveFont()というメソッドがあり、これがオーバーライドされていて必要なパラメータを与えるとその部分だけ変更したFontクラスのオブジェクトを返してくれる。例えばFont.BOLDをパラメータにすれば太字になったフォントが返ってくる。
これをsetFont()すればフォントの変更が可能だ。これで決め打ちせずに実行環境のフォントから変更したフォントの生成が可能になった。
次の課題がHTMLビューの作成。実はJavaMailのサンプルはHTMLのビューが作りこまれていない。通常のというか大多数のHTMLメールはtext/plainとtext/htmlのマルチパートになっていて、サンプルはこれをマルチパートとして扱い、text/plain部分を本文として表示、text/html部分を添付ファイルとして扱っている。
そして、text/htmlについてはviewなし、として見ることはできない。
しかし、昨日、GMailを覗いていてNullPointerExceptionで落ちるメールが一通あった。不思議に思い、Thunderbirdにアカウント設定して該当メールのソースを見ると、text/html単一パートのメールだった。これではビューの生成に失敗して落ちるのが今のプログラムの現状である。
SwingでのHTMLの表示自体はそれほど難しい話ではないから、テキストメールを参考にビューを書いて定義ファイルに追加すれば大丈夫だろう。
ただし、Thunderbirdなどのように、マルチパートのHTMLメールをHTMLメールとして表示するのは現在の構成ではかなり無理がある。そこまでいくなら作り直しだろうな。

コメント