2014-03-13 25 views
0

UIManager.setLookAndFeel 함수를 사용하여 Java 응용 프로그램의 모양을 변경하려고했지만 내 JFrame/단추의 시각적 모양에는 영향을주지 않습니다. Netbeans 7.4을 사용하고 신청서는 Java Swing Desktop Application입니다.UIManager setLookAndFeel이 작동하지 않습니다.

 /** 
    * Main method launching the application. 
    */ 
    public static void main(String[] args) {  
     try { 
     UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel"); 
     } catch (Exception e) { 
      System.out.println(e.getMessage()); 
     } 
     System.out.println("init"); 
     launch(JavaMysqlTestApp.class, args);   
    } 

나는

  • com.sun.java.swing.plaf.motif.MotifLookAndFeel
  • javax.swing.plaf.metal.MetalLookAndFeel
  • com.sun.java.swing.plaf.gtk.GTKLookAndFeel
  • UIManager.getSystemLookAndFeelClassName()
  • UIManager.getCrossPlatformLookAndFeelClassName()
사용

그러나 그 중 누구도 내 동료의 모습을 변경하지 않았습니다. 이 기능을 어떻게 적용시킬 수 있습니까?

+0

'launch (JavaMysqlTestApp.class, args);가 다른 응용 프로그램을 실행합니까? – alex2410

+0

'java application'이 아닌'java desktop application'입니다. 그래서 내가 생각하기에 그 confusion이 나온다. 이제'@Override protected void startup()'함수에서'UIManager.setLookAndFeel' 메서드를 사용했습니다. 이제 작동합니다! – Fer

답변

1

하나는 검사 할 수있는 모든 모양과 느낌 :

try { 
     LookAndFeel laf = UIManager.getLookAndFeel(); 
     for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) { 
      ... 
      if (laf.getName().equals(info.getName())) { 
       ...; 
      } 
     } 
    } catch (ClassNotFoundException | InstantiationException 
      | IllegalAccessException | UnsupportedLookAndFeelException ex) { 
     Logger.getLogger(NewJFrame1.class.getName()).log(Level.SEVERE, null, ex); 
    } 

아마 모양과 느낌이 두 번째을 설정 입니다. 이 질문을 찾는 초보자 : L & F는 의 경우에만 작동합니다.; awt 버튼 (JButton 대신) 또는 JavaFX를 사용하면 변경 사항이 표시되지 않습니다.

당신은 할 수 :

UIManager.addPropertyChangeListener(...); 

및 변경에

나중에 변경 사항을한다.