낭만 프로그래머

Java Swing에서 Nimbus LookAndFeel 사용 후 일괄로 Font 변경 본문

Java/Common

Java Swing에서 Nimbus LookAndFeel 사용 후 일괄로 Font 변경

조영래 2018. 11. 29. 18:18

Swing 으로 Application 개발 중에 LookAndFeel을 적용 후에 일괄로 Font를 변경 하고 싶을 때가 있다
이것 저것 테스트 해보다가 아래 소스로 완료 하였다
중복된 것 처럼 보이지만 처음으로 Default 로 적용하고 나중에 LookAndFeel Default 적용하는 형태로 작업해야 한다.


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, new javax.swing.plaf.FontUIResource("SanSerif",Font.PLAIN,20));
}
    }

    for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
UIManager.setLookAndFeel(info.getClassName());
break;
        }
    }

UIDefaults uidefaults = UIManager.getLookAndFeelDefaults();
java.util.Enumeration keys2 = uidefaults.keys();
while (keys2.hasMoreElements()) {
    Object key = keys2.nextElement();
    Object value = uidefaults.get(key);

    if (value instanceof javax.swing.plaf.FontUIResource) {
uidefaults.put (key, new javax.swing.plaf.FontUIResource("SanSerif",Font.PLAIN,20));
    }
}