2015.02.07 20:43


1.Introduction                                                                                                              

 

 

많이들 보신 화면입니다. 그런데, 이것은 자바로 만들어졌습니다.

기존의 스윙 Look & Feel 을 아시던 분이라면 아마도 놀라실듯 합니다.

 

JGoodies 는 제품개발, 소프트웨어 컨설팅 그리고 디자인 회사입니다.

http://www.jgoodies.com/

 

자바 데스크탑 애플리케이션을 제작중이시거나 공부하시는 분들은 아마  

http://java.sun.com/products/jfc/tsc/sightings/index.html 에서 많은

자바 애플리케이션들을 보셨을겁니다.

이중에서 UI 가 좀 이쁘다 싶으면 거의 모두 JGoodies 를 쓴거라고 보셔도 무방합니다.

 

JGoodies 에서 내놓은  Free Libraries 는 전세계 자바 유저들에게

엄청난 인지도를 가진  "Advanced Java Look & Feel API"  입니다.

http://www.jgoodies.com/freeware/index.html

 

이 라이브러리는 모두 BSD 라이센스 입니다.

이것은 GNU 라이센스인 GPL 보다 더 자유로운 라이센스로 , 쉽게 말하자면

공개된 소스가지고 지지고 볶든 , 뭐 다른걸 만들던 상관하지 않는다 라는 겁니다.

더 쉽게 말하면.  진짜 완전 꽁짜라는 소립니다. ㅡ.ㅡ;

 

2. JGoodies Free Libraries                                                                     

 

공개된 라이브러리는 다음과 같습니다.

JGoodies Animation

-> Time-based real-time animations in Java

http://www.jgoodies.com/freeware/animation/index.html


JGoodies Forms

-> Build better screens faster
http://www.jgoodies.com/freeware/forms/index.html

 

JGoodies Looks

 -> Free high-fidelity Windows and multi-platform appearance
http://www.jgoodies.com/freeware/looks/index.html

 

자바 데스크탑 애플리케이션을 만들때 아주 유용하게 쓰이는 것들입니다.

프로젝트에 JGoodies 를 적용할것이냐 말것이냐하는 판단은 개발자 각자의 몫이지만,

이것을 사용함으로서 얻는 이점은 이루 말 할수 없습니다.

 

3. JGoodies Looks                                                                                 

 

다운받아 보겠습니다.

먼저 라이브러리를 다운받기 위해

http://www.jgoodies.com/downloads/libraries.html 로 가서

JGoodies Looks 을 다운받습니다.

 

샘플 데모프로그램도 하나 다운 받아 봅시다.

http://www.jgoodies.com/downloads/index.html 로 가서

Looks Demo 를 다운 받습니다.

 

적당한 폴더에 풀고 데모를 실행시켜 보겠습니다.

>> java -jar looksdemo-1.2.2.jar

 

여기서 Look & Feel 과 Theme 를 선택하고 Launch Demo 를 누르면,

 

그냥 GUI 일 뿐이며, 액션은 없습니다. 이 윈도우를 종료하면 다시 Luncher 화면으로 돌아갑니다.


4. How to Use Look anf Feel                                                                     

 

Java Swing 을 사용한 GUI 프로그램을 제작할때 ,

우리는 스윙의 look&feel 을 변경하고 싶을때..다음과 같이 합니다.

 

.

.

.

 String macLAF       =  "com.sun.java.swing.plaf.mac.MacLookAndFeel";
 String metalLAF      =  "javax.swing.plaf.metal.MetalLookAndFeel";
 String motifLAF       =  "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
 String windowsLAF = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
 String GTKLAF        =  "com.sun.java.swing.plaf.gtk.GTKLookAndFeel";

 String lafName= windowsLAF ;//-> 원하는 룩앤필 이름을 지정합니다.
  try {
   UIManager.setLookAndFeel(lafName);
  } catch (UnsupportedLookAndFeelException e) {
   e.printStackTrace();
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  } catch (InstantiationException e) {
   e.printStackTrace();
  } catch (IllegalAccessException e) {
   e.printStackTrace();
  }

.

.

 

 















 마찬가지 방법으로 JGoodies Look & Feel 을 적용한다면,

 

.

.

 String exWinLAF ="com.jgoodies.plaf.windows.ExtWindowsLookAndFeel";
 String plasticLAF ="com.jgoodies.plaf.plastic.PlasticLookAndFeel";
 String plastic3DLAF ="com.jgoodies.plaf.plastic.Plastic3DLookAndFeel"; 
 String plasticXPLAF ="com.jgoodies.plaf.plastic.PlasticXPLookAndFeel"; 

 String lafName= exWinLAF ;//-> 원하는 룩앤필 이름을 지정합니다.
  try {
   UIManager.setLookAndFeel(lafName);
  } catch (UnsupportedLookAndFeelException e) {
   e.printStackTrace();
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  } catch (InstantiationException e) {
   e.printStackTrace();
  } catch (IllegalAccessException e) {
   e.printStackTrace();
  }

 













여러분이 만들어논 데스크탑 애플리케이션이 있다면,

JGoodies Looks jar 파일을 클래스 패싱하시고

위 코드를 main 에 추가해 보시면 아마 더 예쁜 GUI 가 보여질것입니다.

 

4. How to Use Theme                                                                              

 

JGoodies 가 제공하는 Plastic 시리즈 룩앤필에는 원하는 테마를 설정할수 있습니다.

제공하고 있는 테마는 JGoodies API 를 참조합니다.

다음과 같이 Plastic 룩앤필에 테마를 설정합니다.

 

.

PlasticLookAndFeel.setMyCurrentTheme(new DesertBlue());
   try {
      UIManager.setLookAndFeel(new Plastic3DLookAndFeel());
   } catch (Exception e) {}
 .

.

 




JGoodies 의 FAQ 에도 나와 있지만  

Plastic 룩앤필은 중국어 일본어 및 기타 언어를 지원하지 않습니다.

따라서 한국어를 지원하기 위해 약간의 꼼수가 필요합니다.

 

이 꼼수는 바로 Theme 를 이용하는 것인데,

PlasticTheme 클래스의 getFont0() 메소드를 오버라이드하여

내가 원하는 한글 폰트를 지정하는 것입니다.

 

.

  PlasticLookAndFeel.setMyCurrentTheme(new DesertBlue(){
   protected Font getFont0(int size) {
    return new Font("굴림", Font.PLAIN, 12);
   }
  });

 

  try {
      UIManager.setLookAndFeel(new Plastic3DLookAndFeel());
   } catch (Exception e) {}
.

 









5. 마치며...                                                                                            

 

Plastic 룩앤필은 특정한 몇몇개의 자바 컴퍼넌트의 UI 에 옵션을 설정할수 있습니다.

이것은 User's Guide 에 자세히 나와 있으므로 쉽게 참조 할수 있습니다.


JGoodies API는 아주 훌륭한 자바 룩앤필 이며

멋진 GUI 를 원하는 자바 데스크탑개발자라면 한번쯤 눈여겨 볼만한 API 입니다





신고

'Programming > JAVA' 카테고리의 다른 글

JNA (Java Native Access)  (0) 2015.03.14
[JAVA] 자바 실행파일 만들기  (0) 2015.03.01
JGoodies JAVA Swing API  (0) 2015.02.07
클래스 java.io.File  (0) 2013.05.29
평년/윤년 구하기  (0) 2013.03.02
날짜  (0) 2013.03.02


Posted by injunech

티스토리 툴바