Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Setting the colors of a JProgressBar text

I have these progress bars:

Sample Bars

I'm trying to set the color of the TEXT of the progress bars, without changing the background color or the color of the progress bar itself. As far as I can tell, setForeground() sets both the text and the bar color? Is there a way to do one without the other?

like image 734
zigdon Avatar asked Aug 13 '10 19:08

zigdon


2 Answers

Ah ha - looks like I can modify the UI:

    setUI(new BasicProgressBarUI() {
      protected Color getSelectionBackground() { return Color.black; }
      protected Color getSelectionForeground() { return Color.white; }
    });

This was a bit confusing, since the use of Foreground and Background weren't intuitive. Background is the color of the text when the bar isn't covering it, foreground is the color of the text when it is.

Here's the end result:

Colors adjusted

like image 108
zigdon Avatar answered Nov 08 '22 10:11

zigdon


By message with UIDefaults,

ProgressBar.background is the background color
ProgressBar.foreground is the cell color
ProgressBar.selectionBackground is the text color outside cells
ProgressBar.selectionForeground is the text colot INSIDE cells

UIManager.put("ProgressBar.selectionForeground", Color.black);
UIManager.put("ProgressBar.selectionBackground", Color.black);
like image 4
Furkan Avatar answered Nov 08 '22 09:11

Furkan