iGoogleのブックマークがまた消えた。
何で消えるんよ。
また登録しなおしかなー。
面倒だ。
普通にブックマークをしよう。
今日はバイトでした。
人がめっちゃ来た。
いやー、あれだけ来たのは久しぶりですな。
なんか明日もバイトを入れられました。
この頃用事やら風邪やらで人がいないそうです。
これで今週は5日バイトになりました。
本当は週3なんだけどなー。
家に帰ってから昼食を食べて、そのあと学校へ。
奨学金関係の手続きを少ししてから研究室。
めっちゃ眠かったから寝ちゃいました。
1時間くらい?してから起きて、ちょっとネット徘徊してから研究のプログラム。
今回やったことはフォントセレクターの実装。
と言っても、別にダイアログ出して、とかじゃなくてプルダウンからフォントを選ぶ形。
サンプルとしてフォント名をそのフォントで表示させてみました。
それで、デフォルトのフォントを初期値にしようと思ったのですが、
デフォルトフォントがDialogというのでした。
が、こんなフォントはオレのPCには入ってません。
PCに入ってないので初期値にできませんでした。
色々調べてみたらDialogなどはどうも論理フォントと言うJavaの内部で定義され、
マッピングにより物理フォント(明朝みたいないわゆる普通のフォント)を呼び出すものらしいです。
どうやったら初期値をデフォルトフォントにできるかなー、と色々調べたりテストしてみたりしました。
それで、結論。
GraphicsEnvironment.getAvailableFontFamilyNames()で使えるフォント名を取得できるのですが、
この中には物理フォントだけでなく、DialogやDialogInputといった論理フォントも入ってます。
で、デフォルトフォントはテキトーなJComponentを用意してgetFont().getName()を使いフォント名を取り出し、
それを初期値とすることで解決しました。
Font.getFontName()やFont.getFamily()だとなんかうまく行かなかったですね。
ま、ちょっと自分のメモにソースを軽く書いておきますかね。
JComboBox selecter = new JComboBox();
//レンダラーの設定は省略
GraphicsEnvironment local = GraphicsEnvironment.getLocalGraphicsEnvironment();
String fontlist[] = local.getAvailableFontFamilyNames();
Font def = selecter.getFont();
for (int i = 0; i < fontlist[].length; i++) {
Font f = new Font(fontlist[i], Font.PLAIN, 12);
selecter.addItem(f);
if ( def.getName().equals(f.getName()) ) selecter.setSelectedItem(f);
}
ま、半分以上は先輩のソースを使ってるんですけどね。
レンダラーのところとアイテムリスナーのところは自分用にカスタマイズしました。
と、ここまで書いててなんですが、なんでフォントを使うんよ?とオレの研究を知らない人は思うでしょうね。
見れば分かります。
風のウワサで聞いてればなんとなく分かります。
そんな感じ。
これ研究なのかね。
いまさら。
で、集中してたらいつの間にか18時を過ぎてた。
さっさと片付けて学食へ。
ちょっと出遅れた感じがあったが、ちゃんと夕食が食べられたので問題なし。
食後は部室でさっきの続き。
フォントセレクターで選んだフォントをちゃんと適用できるようにしました。
そしたら日本語が使えないフォントはAscentがものすごく大きく、
ちゃんと真ん中にオブジェクトが表示されない・・・。
なのでちょっと描画場所をずらしてやりました。
フォントの高さ(FontMetics.getHeightで取れるやつじゃない)は画像解析時に取れるから
その値からレンダリングする場所を変えますかね?
面倒だからやらなくていいか。
別にエラーが出るわけじゃないし。
と、今日やりたかったことが早めに終わったので後輩とだべってました。
その間にいくつか質問があったのでそれらに答えて、
質問がない時はプログラムのコアな話に耳を傾けたり。
どんどんPandDのプログラマのレベルが上がっていきますな。
オレなんか置いてかれてますよ。
ゲームプログラミングをやりてーー。
時間になり帰宅。
後輩から頼まれてたものを取ってきてます。
多分1個は明日の昼になったら落ちるんじゃないかな。
もう1個は知らん。
運がよければ両方落ちるかもね。
アニメも新作が追加。
GUNSLINGER GIRL第2期、ARIA The ORIGINATIONを入荷。
みなみけ、二宮くんがちゃんとしたソースでコンプリートしました。
終わってるのちゃんとしソースでコンプリートしてないのがいくつかある。
早く上がってくれないかなー。
さて、アニメでも見るか。
劇場版を見たらTV版も見たくなったので多分シャナを見ると思います。
多分土曜には見終わると思う。
そいえば今週の金曜はプチプレゼンか。
どんなことやるんだろうな。
論文も書かんと。
めんどー。
[0回]
PR