Установка цветов текста JProgressBar - PullRequest
8 голосов
/ 13 августа 2010

У меня есть эти индикаторы выполнения:

Sample Bars

Я пытаюсь установить цвет ТЕКСТА индикаторов выполнения без изменения цвета фона или цвета самого индикатора выполнения. Насколько я могу сказать, setForeground () устанавливает и текст, и цвет панели? Есть ли способ сделать одно без другого?

Ответы [ 2 ]

21 голосов
/ 14 августа 2010

Ах, ха, похоже, я могу изменить пользовательский интерфейс:

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

Это немного сбивало с толку, поскольку использование Foreground и Background не было интуитивно понятным.Фон - это цвет текста, когда панель его не закрывает, а передний план - это цвет текста, когда он есть.

Вот конечный результат:

Colors adjusted

4 голосов
/ 05 марта 2011

По сообщению с 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);
...