bboks.net™

Java 룩앤필 설정 본문

Java/Java

Java 룩앤필 설정

bboks.net 2010. 5. 19. 11:12

0. 룩앤필(look and feel)이란?
소프트웨어 디자인에서 룩앤필은 GUI(Graphical User Interface)측면과 디자인의 형태 구성에서 사용되는 용어로 색상, 모양, 레이아웃, 서체(look)와 같은 요소와 버튼, 박스, 메뉴(feel)와 같은 동적 요소의 행위를 포함한다.

1. 소개
별도로 룩앤필을 지정하지 않으면 자바 룩앤필이 기본으로 지정된다.
룩앤필을 지정할 때에는 다음과 같이 UIManager 클래스를 사용하면 된다

try {
    UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
} catch (Exception e) { 
    System.err.println("Cannot set look and feel:" + e.getMessage ()); 
}


UIManager 클래스의 getCrossPlatformLookAndFeelClassName() 메소드는 자바 룩앤필 클래스 이름을 리턴한다. getSystemLookAndFeelClassName() 메소드는 현재 자바 스윙 컴포넌트가 실행되고 있는 환경에 따라 다른 클래스 이름을 리턴한다. 즉, 마이크로소프트 윈도우 시스템에서 실행되고 있다면 윈도우 룩앤필 클래스 이름을 리턴하고, 유닉스의 X 윈도우 시스템에서 실행되고 있다면 모티프 룩앤필 클래스 이름을 리턴할 것이다.

2. 룩엔필 지정하기
메탈 룩앤필 설정 예)
try {
    UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
} catch(Exception e) { 
}


시스템에서 사용하는 룩 앤 필을 사용하는 예)
try {
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch(Exception e) { 
}


윈도우 룩앤필 설정 예)
try {
    UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch(Exception e) { 
}


3. LookAndFeel 바꾸기
프로그램의 GUI 가 보인후에도 Look & Feel을 setLookAndFeel() 을 이용하여 변경이 가능하다.
새로운 l&f 을 컴포넌트에 적용하기 위해서는 SwingUtilities.updateComponentTreeUI() 을 최상위 컨테이너에서 호출해야 한다.

UIManager.setLookAndFeel ( Look&Feel_Name );
SwingUtilities.updateComponentTreeUI ( frame );
frame.pack ( );
...


4. 클래스/메소드
UIManager.setLookAndFeel()
- 프로그램의 룩앤필을 변경한다.
- 지원하는 룩앤필이 아니면 UnsupportedLookAndFeelException을 발생

UIManager.getCrossPlatformLookAndFeelClassName()
- 자바의 플랫폼 중립적인 메탈 룩 앤 필을 나타내는 객체 반환

UIManager.getSystemLookAndFeelClassName ()
- 현재 시스템에 맞는 Look & Feel 을 제공한다.

플랫폼별 L&F 이름
Windows L&F -  "com.sun.java.swing.plaf.windows.WindowsLookAndFeel" (윈도우 전용)
CDE/Motif L&F - "com.sun.java.swing.plaf.motif.MotifLookAndFeel" (모든 OS 가능)
Mac OS L&F - "javax.swing.plaf.mac.MacLookAndFeel" (Mac OS 전용)