如何更改JProgressBar的颜色?

18

我使用了 .setBackground.setForeground,但它们没有起作用,颜色还是橙色,无法更改。

3个回答

24

我认为这些数值适合您

UIManager.put("ProgressBar.background", Color.ORANGE);
UIManager.put("ProgressBar.foreground", Color.BLUE);
UIManager.put("ProgressBar.selectionBackground", Color.RED);
UIManager.put("ProgressBar.selectionForeground", Color.GREEN);

+1 对于 UIManager;另请参见此替代方案 - trashgod
2
你应该只为这个进度条更改颜色,而不是像Alex的帖子中那样更改应用程序中所有进度条的默认值,对吧? - Lukasz Czerwinski
2
@madhawa priyashantha 是的,但你必须覆盖JProgressBar的Painter - mKorbel
1
@madhawa priyashantha 为了搜索 AbstractPainter 的出色输出,然后可以创建圆角(从未使用过)。 - mKorbel
1
我仍然得到相同的橙色! - Jay Patel
显示剩余7条评论

20

你应该将setStringPainted属性设置为true:

progressBar.setStringPainted(true);
progressBar.setForeground(Color.blue);
progressBar.setString("10%");

1
谢谢,这是设置单个颜色的最佳方式。 - Stefan
2
但那会改变文本颜色,而不是进度条颜色。 - Matthieu
1
只需尝试,它会更改进度条的前景。 - Alexey
8
我想这取决于你使用的外观和感觉(L&F)。例如,在Nimbus中这并不起作用。 - Matthieu
这将是我们在Eclipse中常见的普通Java绿色进度条吗? - Doug Hauf

0
你可以使用这个:
UIManager.put( "nimbusOrange", new Color( 38, 139, 210 ) );

对我来说它有效,只需更改颜色,您可以使用Color.RED或类似的颜色


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接