2012-03-17 3 views
1

저는 Java GUI 프로젝트에서 일하고 있습니다. 스윙 기반 GUI에는 몇 가지 구성 요소가 있습니다. 각 구성 요소의 글꼴을 하나씩 변경하는 대신 모든 구성 요소의 글꼴 설정을 변경하고 싶습니다.전체 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){} 

추신 : 오래된 프로젝트에서 복사 한 것입니다. 내가 어디에서 왔는지 확신 할 수 없다.

+0

죄송합니다. 내 질문을 코드로 업데이트했습니다. 방금 제안한 함수를 사용하는 방법이 혼란 스럽습니다. 'Test' 클래스에 함수를 넣고'Test()'생성자에서 호출하려고했습니다. 그러나 그것은 아무 것도하지 않았습니다. – Ankit

+0

그것은 효과가 있었다. 죄송합니다 나는 모든 코드의 끝에서, 보이는 것 바로 전에 함수를 넣습니다. 그러나 이제는 맨 위에 놓았을 때 작동합니다. 고마워요! – Ankit

4

당신은 FontUIManager이 점을 설정할 수 있지만 그들 각각 becase JComponents 모든 유형의 UIManager Defaultshere에 자신의 구문을 가지고있다

관련 문제