ショボ短歌会

(1)JComboBoxをツールバーを作りそこに追加してるんですがJComboBoxのサイズを変更することってできないんでしょうか?? 今のままだと画面のサイズと一緒に
幅が最大まで表示されてしまうんです。

(2)フォントの種類とサイズを別々変更したいんですが
Font("",Font.PLAIN,15);
を使うとFont.PLAINというフォントの種類と
15というフォントのサイズまで変更されてしまいます。
別々にフォントの種類だけ変更できるメソッドや
フォントのサイズだけ変更できるメソッドって
ないんでしょうか??

色々探したんですが見つかりません(泣
どなたかお願いします!!

A 回答 (4件)

>取り出した値を再利用


ってどういうことなんでしょうか??

例えば、それまで設定していたFontインスタンスfontがあったとすると、

String n = font.getName();
Style s = font.getStyle();
Font font2 = new Font(n,s,24);

こんな具合にすれば、フォントとスタイルが同じでサイズだけが24ポイントに変更されたFontが得られます。
    • good
    • 0

フォントの種類はわからないのですが、


サイズとスタイルだけを変えるのであれば、
Font#deriveFont(float size)
Font#deriveFont(int style)
が使えると思います。

どちらにしても新しくFontインスタンスを生成するので、再びsetFontする必要があります。

//サイズやフォント種類はそのままに、スタイルだけボールドにする
components.setFont(component.getFont().deriveFont(Font.BOLD));
    • good
    • 0
この回答へのお礼

sasadoraさん、Kyon2_PaPaさんありがとうございます
やっと理解できました!!! 

うっうれしいです(嬉泣

お礼日時:2005/06/28 18:07

(1)ツールバーの上にJPanelを置いて、その上にJComboBoxを置けばよいです。

JPanelのレイアウトマネージャはなんでもいいですが、FlowLayoutあたりがよいかと思います。

(2)No.1の方のおっしゃるとおりだと思います。
    • good
    • 0
この回答へのお礼

//コンボボックスの位置を設定(1)JPanelを作り(2)パネルの上にJComboBoxを置く
//(3)FlowLayoutで配置位置を設定する(4)ツールバーにパネルを設置する。
JPanel panel1 = new JPanel();
panel1.add(cb);
panel1.setLayout(new FlowLayout(FlowLayout.LEFT));
tb.add(panel1);

(1)のほうができました。一度パネルを作って細かい
一設定ができるんですね。ありがとうございます。。

問題は(2)の方なんですがグぐったりしたんですが
よくわかりません

>取り出した値を再利用

ってどういうことなんでしょうか??

お礼日時:2005/06/27 23:52

>今のままだと画面のサイズと一緒に


>幅が最大まで表示されてしまうんです。

これは、単にレイアウトマネージャがそうしているためではないですか?
 レイアウトマネージャについてはわかりますか? そのあたりがわかれば、レイアウトマネージャを外すか、別のものに入れ替えるか、コンポーネントのpreffedSizeなどを設定するなどいろいろ対処法は考えられますが・・。

>別々にフォントの種類だけ変更できるメソッドや
>フォントのサイズだけ変更できるメソッドって
>ないんでしょうか??

そのFontインスタンスからgetFamilyやgetNameでフォントのファミリーやフォント名が、getSizeでサイズが、getStyleでスタイルが取り出せます。取り出した値を再利用して新たにFontインスタンスを作れば、サイズやスタイルだけ変更したFontが作れます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!