2012-03-17 12 views
1

私はJava GUIプロジェクトに取り組んでいます。スイングベースのGUIにはいくつかのコンポーネントがあります。各コンポーネントのフォントを1つずつ変更するのではなく、すべてのコンポーネントのフォント設定を変更したい。JFrame全体のフォントタイプとサイズを変更しますか?

JFrame上のJPanel上のすべてのコンポーネントのフォントタイプとサイズを変更する方法はありますか?

編集:

これは私のコードがどのように見えるかです:

public class Test extends JFrame{ 
    public Test(){ 

    //all components are initialized here. (some buttons and text fields) and added to this 
     this.setVisible(true); 
    } 

    public static void main(String []args){ 
    new Test(); 
    } 

} 

答えて

5
public static void setUIFont(javax.swing.plaf.FontUIResource f) 
{ 
    java.util.Enumeration keys = UIManager.getDefaults().keys(); 
    while(keys.hasMoreElements()) 
    { 
     Object key = keys.nextElement(); 
     Object value = UIManager.get(key); 
     if(value instanceof javax.swing.plaf.FontUIResource) UIManager.put(key, f); 
    } 
} 

// ... 

try 
{ 
    setUIFont(new javax.swing.plaf.FontUIResource("Tahoma",Font.PLAIN,12)); 
} 
catch(Exception e){} 

PS:これは私の古いプロジェクトからコピーしたばかりです私がどこから得たか分からない。

+0

申し訳ありません。私はコードで私の質問を更新しました。私はちょうどあなたが提案した機能を使う方法を混乱させる。 'Test'クラスに関数を入れて、' Test() 'コンストラクタで呼び出そうとしました。しかし、何もしなかった。 – Ankit

+0

それは働いた。申し訳ありませんが、私はすべてのコードの最後に、可視の直前に関数を置きます。しかし、今、私はそれを上に置くと機能します。どうもありがとう! – Ankit

4

あなたはUIManagerにこのFontを設定することができますが、それらの各becase JComponentsの種類ごとにUIManager Defaultshereに独自の構文を持っています

関連する問題