Как изменить цвет индикатора выполнения SWT?

Можно ли изменить цвет индикатора выполнения с помощью списка рисунков?

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

Я попробовал приведенный ниже код, но он не будет работать

GC gc = event.gc;
Device device=Display.getDefault();
Color foreground = gc.getForeground();
Color background = gc.getBackground();
gc.setForeground(device.getSystemColor(SWT.COLOR_RED));
gc.setBackground(device.getSystemColor(SWT.COLOR_YELLOW));

Я застрял с этим требованием, и мне сказали, что это возможно с помощью прослушивателя краски, интересно, как это сделать!

Любая помощь будет оценена по достоинству.


person Abbas    schedule 26.04.2014    source источник
comment
возможный дубликат SWT-Как изменить цвет ProgressBar в Windows?   -  person Baz    schedule 26.04.2014
comment
Таким образом, нет способа изменить внешний вид индикатора выполнения, если вы не хотите рисовать его самостоятельно полностью. Если вы действительно в отчаянии, вы можете использовать JProgressBar, используя мост SWT/AWT.   -  person Baz    schedule 26.04.2014
comment
Если вы просто используете Windows (Vista или выше), вы можете использовать различные стили ProgressBar (красный, зеленый, желтый), как видно здесь.   -  person Baz    schedule 26.04.2014
comment
Спасибо, Баз. Я знаю об этих цветах на основе состояния, мое приложение предназначено для работы на кросс-платформах и должно иметь бело-серую комбинацию цветов переднего плана и фона. Почему мы не можем использовать тот же код, который отвечает за изменение цветов на КРАСНЫЙ, ЗЕЛЕНЫЙ, ЖЕЛТЫЙ в зависимости от состояний на любой цвет по нашему выбору? Если этот взлом возможен. Дайте мне знать ваше мнение. Спасибо   -  person Abbas    schedule 26.04.2014
comment
Вы не можете использовать этот механизм, потому что только эти три цвета определяются ОС.   -  person Baz    schedule 26.04.2014
comment
@ Баз Я удивлен, что ты не счел это достойным ответа, Баз. Возможно, это не то, что хочет услышать ОП, но это 100% полная правда и полный ответ. Иногда правда в том, что это невозможно.   -  person Southpaw Hare    schedule 28.04.2014
comment
Жаль, что это также означает, что в Eclipse никогда не будет аналога знаменитого плагина NyanProgressBar!   -  person Pyves    schedule 03.09.2019


Ответы (1)


Цвет индикаторов выполнения определяется операционной системой.

В большинстве случаев в средах Windows индикатор выполнения будет зеленым. Использование команды setState(int state) изменит «состояние» индикатора выполнения, который в некоторых системах также изменит цвет — в Windows 7 приостановлено отображается желтым цветом, а результаты ошибка в красном. Однако у этих статусов есть и другие значимые коннотации, и пользователь может сбить с толку, если использует их просто для стилистического обоснования цвета. В общем смысле следует считать цвет неизменным.

person Southpaw Hare    schedule 28.04.2014