如何覆盖禁用的 JPanel 的背景颜色
How to override background color for disabled JPanel
在 Java Swing 应用程序中,我使用的是 nimbus 外观。
我尝试覆盖 JPanel 背景颜色(启用或禁用)但没有成功。
Doc oracle, Nimbus Defaults -> 搜索 "Panel.background".
我像这样实例化 JPanel:
JPanel panel = new JPanel() {
private static final long serialVersionUID = 1L;
@Override
public void updateUI() {
if ("Nimbus".equals(UIManager.getLookAndFeel().getName())) {
UIDefaults map = new UIDefaults();
map.put("Panel.background", Color.yellow); // Works fine :)
map.put("Panel.disabled", Color.red); // Don't work :'(
putClientProperty("Nimbus.Overrides", map);
}
super.updateUI();
}
};
我也在努力:
map.put("Panel[Disabled].background", Color.blue); // Don't work too :'(
终于,我发现了我的错误。
map.put("Panel.background", new ColorUIResource(Color.yellow));
map.put("Panel[Disabled].background", new ColorUIResource(Color.red));
失踪 "new ColorUIResource"。
这很有魅力。
在 Java Swing 应用程序中,我使用的是 nimbus 外观。 我尝试覆盖 JPanel 背景颜色(启用或禁用)但没有成功。
Doc oracle, Nimbus Defaults -> 搜索 "Panel.background".
我像这样实例化 JPanel:
JPanel panel = new JPanel() {
private static final long serialVersionUID = 1L;
@Override
public void updateUI() {
if ("Nimbus".equals(UIManager.getLookAndFeel().getName())) {
UIDefaults map = new UIDefaults();
map.put("Panel.background", Color.yellow); // Works fine :)
map.put("Panel.disabled", Color.red); // Don't work :'(
putClientProperty("Nimbus.Overrides", map);
}
super.updateUI();
}
};
我也在努力:
map.put("Panel[Disabled].background", Color.blue); // Don't work too :'(
终于,我发现了我的错误。
map.put("Panel.background", new ColorUIResource(Color.yellow));
map.put("Panel[Disabled].background", new ColorUIResource(Color.red));
失踪 "new ColorUIResource"。 这很有魅力。