Java Swing: наличие нескольких цветов в одном JProgressBar

Мой начальник поручил мне создать производственную информационную панель для отслеживания эффективности рабочих на производственной линии. Он хочет, чтобы индикатор выполнения заполнялся в зависимости от времени и менял цвета, если рабочий работает вовремя или отстает и т. д. Мне нужно знать, можете ли вы иметь несколько цветов для одного JProgressBar, который меняется в зависимости от полосы заполняется, чтобы показать эти изменения. я имею в виду

что-то вроде этого.

Это вообще возможно? Если нет, то каков мой лучший способ действий, чтобы сделать это? Я подумал о том, чтобы собрать вместе несколько JProgressBars и выполнить некоторые вычисления, чтобы выяснить, какой раздел должен быть какого цвета, если только нет лучшего способа сделать это.


person BamSquid    schedule 18.11.2016    source источник
comment
Почему бы просто не использовать один индикатор выполнения и не использовать один цвет, например: {Green, Red} для {On-Time, Behind}?   -  person Matthew Brzezinski    schedule 18.11.2016
comment
stackoverflow.com/questions/28908135/ Это должно быть полезным началом.   -  person Matthew Brzezinski    schedule 18.11.2016
comment
Вот как я это делаю сейчас, но это не так, как он хочет. Он хочет иметь возможность смотреть на это и видеть, где они отстали и где они снова нагнали, как то, что я показал на картинке, а не только одним цветом, чтобы понять, успевают они в данный момент или нет.   -  person BamSquid    schedule 18.11.2016
comment
Глядя на ссылку, которую я разместил выше, вы можете создать несколько индикаторов выполнения, установив их ширину на что-то заранее определенное (длина задачи), расположив их бок о бок, а затем задав эти цвета для каждой части отдельно. Оглядываясь вокруг, я не вижу ничего для установки цветов от n to m до определенного значения.   -  person Matthew Brzezinski    schedule 18.11.2016
comment
У меня было ощущение, что это то, что мне придется сделать, но я действительно надеялся, что есть другой способ. Спасибо за вашу помощь! Если ни у кого больше нет других предложений, не могли бы вы опубликовать свой комментарий в качестве ответа, и я выберу его?   -  person BamSquid    schedule 18.11.2016
comment
Альтернативой может быть создание собственного компонента Swing из JPanel. Вы можете передать список объектов Segment. Каждый объект Segment будет иметь значение from, значение to и Enum, которые будут осмысленно обозначать зеленый, желтый или красный. Значения from и to будут варьироваться от нуля до 100.   -  person Gilbert Le Blanc    schedule 19.11.2016


Ответы (2)


Глядя на ссылку, которую я разместил выше, вы можете создать несколько индикаторов выполнения, установив их ширину на что-то заранее определенное (длина задачи), расположив их бок о бок, а затем задав эти цвета для каждой части отдельно. Оглядываясь вокруг, я не вижу ничего для установки цветов от n до m до определенного значения.

person Matthew Brzezinski    schedule 18.11.2016

Сделайте индикатор выполнения, цвет переднего плана которого «прозрачный». Поместите за ним графику со всеми цветами, которые вы хотите. По мере заполнения индикатора выполнения его прозрачная часть будет отображать графику позади него.

person Dawood ibn Kareem    schedule 19.11.2016