2012-04-06 3 views
0

Java 응용 프로그램에서 모양과 느낌을 설정했지만, 왜보기가 항상 한 프레임에서 다른 것으로 다른지 알지 못합니다. 프레임에서 나는 완벽하게 좋은 푸른 후광을 얻었고, 다른 프레임에서 나는 회색을 얻었지만 그것은 적절하지 않습니다. 다른 하나는 nimbus 룩앤필을 사용하는 것으로 표시되지 않았습니다. 여기에 내가 주Java nimbus Look and Feel보기가 항상 다른 경우

try { 
    for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) { 
     if ("Nimbus".equals(info.getName())) { 
      UIManager.setLookAndFeel(info.getClassName()); 
      break; 
     } 
    } 
    } catch (Exception e) { 
    // If Nimbus is not available, you can set the GUI to another look and feel. 
} 

에서 사용하는 코드가 나는 또한 내가 당신을 감사합니다, 누군가가 나를 도울 수 있기를 바랍니다

import javax.swing.*; 
import javax.swing.UIManager.LookAndFeelInfo; 

를 가져올 수 있습니다.

+1

아마 관련 : http://stackoverflow.com/questions/7612592/jframe-and-nimbus-look-and-feel – assylias

+1

합니까 java -Dswing.defaultlaf = javax.swing.plaf.nimbus.NimbusLookAndFeel MyApp' (http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/nimbus 참조)로 앱을 실행하면 올바르게 작동합니다. HTML) – ulmangt

답변

5

다른 모양과 느낌으로 전환 할 때 각 최상위 컨테이너에 대해 SwingUtilities#updateComponentTreeUI 메서드를 한 번 호출해야합니다. 또한 보이는 UI/최상위 컨테이너의 일부가 아닌 UI 구성 요소를 저장하는 경우이를 업데이트해야합니다.

예를 들어, 룩앤필을 전환 할 때 두 번째 패널이 이미 생성 된 경우이를 업데이트해야합니다. 오히려 좋은 스윙에 거의 아무것도처럼,이

tutorial 사용할 수

관련 문제