我使用的是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。我也尝试直接从控制台运行,但同样的问题。 谢谢你的帮助。
答案 0 :(得分:0)
我使用Nimbus已经有一段时间但是如果我没记错的话,大多数Nimbus元素都不是那么容易使用标准方法来覆盖的。
我强烈建议您查阅Nimbus特定教程或指导如何正确覆盖颜色/字体/等。
对stackOverflow上另一个问题的回答有与您相关的信息,您应该阅读它以获取更多信息。
Override Swing Nimbus L&F primary color per component instance