Java nimbus - 即使它是相同的代码,颜色也会有所不同

时间:2014-09-12 11:14:01

标签: java netbeans customization nimbus

我使用的是Nimbus L& F,JDK 1.7和Netbeans 8.0。

我应该定制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。我也尝试直接从控制台运行,但同样的问题。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

我使用Nimbus已经有一段时间但是如果我没记错的话,大多数Nimbus元素都不是那么容易使用标准方法来覆盖的。

我强烈建议您查阅Nimbus特定教程或指导如何正确覆盖颜色/字体/等。

对stackOverflow上另一个问题的回答有与您相关的信息,您应该阅读它以获取更多信息。

Override Swing Nimbus L&F primary color per component instance