首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Nimbus中更改单个JProgressBar的颜色?

如何在Nimbus中更改单个JProgressBar的颜色?
EN

Stack Overflow用户
提问于 2012-06-01 16:58:23
回答 1查看 4.8K关注 0票数 4

我正在尝试更改Nimbus LAF中单个JProgressBar的颜色(外观)。此解决方案确实有效,但它会更改所有JProgressBars的颜色:/

代码语言:javascript
复制
    UIDefaults defaults = UIManager.getLookAndFeelDefaults();
    defaults.put("nimbusOrange",defaults.get("nimbusBase"));

在此thread中,另一个解决方案是分别更改每个JProgressBar的颜色:

代码语言:javascript
复制
    progress = new JProgressBar();
    UIDefaults defaults = new UIDefaults();
    defaults.put("ProgressBar[Enabled].backgroundPainter", new MyPainter());
    progress.putClientProperty("Nimbus.Overrides.InheritDefaults", Boolean.TRUE);
    progress.putClientProperty("Nimbus.Overrides", defaults);

不幸的是,我不能让它工作。我不知道在哪里可以找到"MyPainter()“的库。所以我试着用"defaults.get("nimbusBase")“和"Color.red”替换这个方法(不知道我在做什么)。也不管用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-01 17:07:41

1.你能说出是哪一个吗

代码语言:javascript
复制
UIManager.put("ProgressBar.background", Color.orange);
UIManager.put("ProgressBar.foreground", Color.blue);
UIManager.put("ProgressBar.selectionBackground", Color.red);
UIManager.put("ProgressBar.selectionForeground", Color.green);

注意MetalLookAndFeel的有效UIDefaults

2.然后请在Nimbus Defaults中搜索等效内容

3.然后尝试覆盖JProgressBar with logics and with this Painter

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10847308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档