2014-09-12 26 views
0

我正在使用Nimbus L & F,JDK 1.7和Netbeans 8.0。Java nimbus - 即使相同代碼,顏色有時也會有所不同

我應該自定義Nimbus。但是,當我運行我的項目時,即使不更改任何代碼,UIManager設置的一些顏色也在改變。

這是我設置Nimbus的地方;

try { 
      for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) { 
       if ("Nimbus".equals(info.getName())) { 
        UIManager.setLookAndFeel(info.getClassName()); 
        break; 
       } 
      } 
     } catch (Exception e) { 
      System.err.println("Some error"); 
} 

這是我的畫家例子(darkpainter與Color.Gray相同而不是Color.orange);

Painter orangePainter = new Painter() { 

      @Override 
      public void paint(Graphics2D g, Object object, int width, int height) { 
       g.setColor(Color.Orange); 
       g.fillRect(0, 0, width, height); 
      } 
     }; 

而我正在用這些代碼定製;

UIManager.put("control", Color.gray); 
UIManager.put("nimbusBlueGrey", Color.gray.darker()); 
UIManager.put("nimbusBorder", Color.orange); 
UIManager.put("TabbedPane:TabbedPaneTab[Disabled].backgroundPainter", darkpainter); 
UIManager.put("TabbedPane:TabbedPaneTab[Disabled+Selected].backgroundPainter", orangePainter); 
UIManager.put("TabbedPane:TabbedPaneTab[Enabled].backgroundPainter", darkpainter); 
UIManager.put("TabbedPane:TabbedPaneTab[Selected].backgroundPainter", orangePainter); 

我找不到問題。 我試圖使用JDK 1.8和Netbeans 7.3。我也嘗試從控制檯直接運行,但同樣的問題。 謝謝你的幫助。

回答

0

自從我使用Nimbus以來已經有一段時間了,但是如果我記得正確的話,大多數Nimbus元素都不是那麼容易用標準方法覆蓋的。

我強烈建議你查看一個關於如何正確覆蓋顏色/字體等的Nimbus特定教程或指南。

對stackOverflow上的另一個問題的回答有關於您的信息,您應該閱讀它以獲取更多信息。

Override Swing Nimbus L&F primary color per component instance

相關問題