2014-09-12 90 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

相关问题