2012-04-20 3 views
0

자바 모양과 느낌에 문제가 있습니다.자바 - 모양과 느낌 문제

내 주요 방법으로 다음 코드로 후광 피부로 설정 한

:

public class Main 
{ 
    public static void main(String[] args) 
    { 
     try 
     { 
      boolean found = false; 
      for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) 
      {    
       if ("Nimbus".equals(info.getName())) 
       { 
        UIManager.setLookAndFeel(info.getClassName()); 
        found = true; 
        break; 
       } 
      } 

      if (!found) UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
      UIManager.put("AuditoryCues.playList", UIManager.get("AuditoryCues.allAuditoryCues")); 
     } 
     catch (Exception e) {} 

     Manager mngr = new Manager(); 
     mngr.setSize(1000, 600); 
     Utils.centerWindow(mngr); 
     mngr.setVisible(true); 
    } 
} 

그리고 그것은 나에게 창 이런 종류의 제공 : 당신이 할 수

enter image description here

을 JInternalFrames는 올바르게 스킨되지만 기본 창이 없습니다.

어떻게 테마를이 창에 적용 할 수 있습니까?

감사합니다. 대한 Nimbus Look and Feel

  • 어쩌면 문제에 대한 Changing the Look and Feel After Startup

  • 당신이 자습서 읽고

    public class Manager extends JFrame 
    { 
        public Manager() 
        { 
         initComponents(); 
        } 
    
        private void initComponents() 
        { 
         setDefaultCloseOperation(3); 
         setTitle("My window"); 
         setIconImage(ImageLoader.getIcon().getImage()); 
    
         // My components go here 
    
         pack(); 
        } 
    } 
    
  • +0

    언제 제공 한 코드를 실행하는 메소드를 호출합니까? 그것이 프로그램에서 일어나는 제일 먼저 확인하십시오. – kentcdodds

    +0

    내 코드를 수정했습니다. – Manitoba

    +0

    'Manager'가 메인 윈도우라고 생각합니다. 창문에 다른 모양과 느낌을주는 것은 정말 이상합니다. 또한, JInternalFrames는 내 멍청이처럼 보이지 않는 것처럼 보입니다 ... 나는 당신이 리눅스에 있다고 생각합니다. 실제 SSCCE (.org)가 없으면 내가 더 이상 당신을 도울 수 있다고 생각하지 않습니다. – kentcdodds

    답변

    0

    그냥 프레임/대화 상자 생성하기 전에이 두 옵션을 전환 해보십시오 :

    JDialog.setDefaultLookAndFeelDecorated (true); 
    JFrame.setDefaultLookAndFeelDecorated (true); 
    

    이 JFrame의 /되는 JDialog는 불화물에서 대신 시스템의 자신의 장식을 얻을 수 있습니다.

    +0

    나는 시도했지만 아무것도 변경되지 않았습니다. 'Manager mngr = new Manager(); 앞에 두 번째 줄을 추가했습니다. – Manitoba

    +1

    나는 이것을 몇개의 LaF와 함께 시도했는데, Nimbus에서만 작동하지 않습니다. Nimbus는 Windows 형식 OS에서 시스템 장식을 사용하는 것으로 보입니다. 그것에 대한 해결책을 보지 마라. .. –

    3
    • :


      Manager는 다음 코드를 사용하여 간단한 JFrame입니다 잘 main window ???

    +0

    예, 아니오, 있습니다. – Manitoba

    +3

    * "가지고 있습니다"* 아니야. 수입이없고 2 등석이없는 수업은 *** SSCCE가 아닙니다. –

    0

    SSCCE와 질문, 증명 문제를 수정, 나는 좋은 SSCCE없이 당신을 위해 무엇을해야할지 잘 모르겠지만, 당신은 항상 나를 위해 작동하는 방법의 예를 원하는 경우 수 github에서 Java-Helper을보세요. 특히, SwingHelper를 this line으로 보아라. 스택 오버 플로우의 기본 규칙을 준수하기 위해 아래 코드를 추가하고 있습니다. 행운을 빈다.

    /** 
        * Sets the look and feel to the given type (like "Nimbus") Learn more here: 
        * http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
        * 
        * @param lookAndFeel to set (like "Nimbus") 
        */ 
        public static void setLookAndFeel(String lookAndFeel) { 
        try { 
         for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { 
         if ((info.getName()).equals(lookAndFeel)) { 
          javax.swing.UIManager.setLookAndFeel(info.getClassName()); 
          break; 
         } 
         } 
        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) { 
         java.util.logging.Logger.getLogger(SwingHelper.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
        } 
        }