Цвет в JProgressBar


Введите описание изображения здесьЯ просто хотел использовать Windows L&F в JFrame. Теперь при использовании индикатора выполнения по умолчанию используется зеленый цвет, подобный тому, который используется в других функциях windows, таких как копирование файлов и т. д. Иногда вы могли видеть, что windows отображает прогресс "красного" цвета (когда может произойти перезапись в случае копирования файлов). Как я могу использовать этот "красный" цвет в случае моего индикатора выполнения, вместо установки "цвет переднего плана" на "красный", который выглядит по-другому?

1 2

1 ответ:

Java реализует нативный индикатор выполнения, используя свой собственный код. Он не поддерживает Vista и более новые функции, которые указывают на остановку / замедление прогресса, изменяя цвет панели.

Источник, которыйрисует полосу , доступен для изучения; он использует метод paintSkin для рисования полосы, который по умолчанию рисует только в одном цвете.

Руководство по проектированию для использования индикатора выполнения В Windows указывает, что вы должны:

  • используйте красный или желтый цвет индикаторы выполнения только для указания состояния выполнения, а не окончательных результатов выполнения задачи. Красный или желтый индикатор выполнения показывает, что пользователям необходимо выполнить некоторые действия для выполнения задачи. Если состояние не поддается восстановлению, оставьте индикатор выполнения зеленым и отобразите сообщение об ошибке.
  • Поверните индикатор выполнения красным, когда есть пользовательское восстанавливаемое условие, которое препятствует дальнейшему прогрессу. Выведите на экран сообщение с объяснением проблемы и рекомендацией решения. Поворота индикатор желтый указывает либо на то, что пользователь приостановил выполнение задачи, либо на то, что существует условие, препятствующее прогрессу, но прогресс все еще имеет место (как, например, при плохом сетевом подключении). Если пользователь сделал паузу, измените метку кнопки "пауза" на "возобновить". Если прогресс затруднен, выведите сообщение с объяснением проблемы и рекомендацией решения.