- - PR -
自作アプリで独自フォントを使いたい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-11-22 16:06
まさです。
JDK 1.4 以上の Swing でアプリケーションを作ろうとしています。 手元に独自フォントの文字コードと、そのビットマップがあります。 (ビットマップは、*.bmp) アプリケーション起動時にデフォルトで適用されるフォントの 拡張領域(?)に上記の独自フォントをマッピングし、 それをアプリケーション全体で使用したいのですが このようなことは可能でしょうか? 1.独自フォントの作成はどのようにすればできるのか? (font.properties をいじくらないで アプリケーション内部で作成したい。) 2.作成した独自フォントをアプリケーション全体に適用するには どうしたらいい?(UI プロパティを調べて全部設定する?) | ||||
|
投稿日時: 2004-11-25 20:46
まさです。
レスが…
やっぱり、独自フォントを用意して font.properties をいじくるのが普通なんでしょうか? でもその場合って、 アプリケーションを配布するようなときには フォントのインストールとか、font.properties の書き換えとかを ユーザにやってもらわないとだめですよね? 作ったアプリで特定のフォントが使いたかったり、 独自の文字を出したい場合なんて場合、 みなさんどうしておられるのでしょうか? | ||||
|
投稿日時: 2004-11-26 00:32
まささん、こんにちは。
私もこの課題には大変興味があります。 私の場合は独自フォントというよりは、日本語と中国語の フォントの組み合わせが欲しかったです。 勿論、font.propertiesを編集することなしに。 以前、既存の複数のフォントを合成するクラスを作りましたが、 全くうまく行きませんでした。グリフを返すメソッドさえ 通常の描画では呼び出されなかったのです。 そしてそれは挫折しました。 でも独自フォントが TrueTypeフォントのファイルなら、 Font.createFont(int fontFormat, InputStream fontStream) が使えるかも知れませんよ。 | ||||
|
投稿日時: 2004-11-26 10:53
アプリケーションの初期化時に、UIManager#put()で、各Swingコンポーネ
ントのデフォルトのリソース指定を設定できますよ。 "MS Mincho"フォントがインストールされているマシンでお試しください。 或いは、フォント名をOSにインストールされている何れかのフォント名に変 更してもOKです。
javax.swing.plaf.basic.BasicLookAndFeel#initComponentDefaults() のソースコードを読めば、各コンポーネントにどんなフォントリソース(フォント に限りませんが)がデフォルトで割り当てられているか、UIManagerの属性値の キーが何なのかがわかります。 開発中のSwingアプリケーションが使用するLookAndFeelクラスに対して initComponentDefaults()をオーバーライドし、親LookAndFeelと差分が発生 する属性だけまとめて上書き(UIDefaultsは、単なるHashtableですので、 上書きは簡単です)するようにすると、分離がしやすいので便利かもしれません。 [ メッセージ編集済み 編集者: シュン 編集日時 2004-11-26 11:02 ] |
1