我使用 Nimbus LAF,我想改变一个简单的JButton
.
JButton jbutton = new JButton("test");
jbutton.setBackground(Color.BLACK);
但它不起作用,当我改变外观和感觉时它起作用但它在 Nimbus 中不起作用。
我该怎么做?
谢谢你的帮助。
Nimbus 使用 Painter 绘制不同的样式。默认情况下,按钮的渐变不是单一颜色。请参阅按钮: Nimbus 默认值列表
您可以编写自己的 Painter 并覆盖默认值。或者您使用“Button.background”键覆盖背景颜色并使用默认画家。
UIDefaults overrides = new UIDefaults();
overrides.put("Button.background", Color.RED);
jbutton.putClientProperty("Nimbus.Overrides", overrides);
jbutton.putClientProperty("Nimbus.Overrides.InheritDefaults", Boolean.TRUE);
SwingUtilities.updateComponentTreeUI(jbutton);
或者,如果您想更改所有按钮的颜色,请尝试:
UIDefaults defaults = UIManager.getLookAndFeelDefaults();
defaults.put("Button.background", Color.RED);
顺便提一句。JButton 基于 Nimbus 默认键“nimbusBase”,如果您更改此颜色:
UIDefaults defaults = UIManager.getLookAndFeelDefaults();
defaults.put( "nimbusBase", Color.RED );
然后您将使用 nimbus 默认蓝色或辅助颜色的所有内容更改为您的新颜色,而不仅仅是按钮。
我找到了一个不错的 Nimbus Theme Creator,它可以显示将 Nimbus 默认颜色更改为所有组件的效果:http: //aephyr.googlecode.com/svn/trunk