У меня есть требование изменить цвет полосы прокрутки на основе определенного пользовательского выбора. В типичной форме, у меня есть переключатель случай, когда я устанавливаю цвет полосы прокрутки с помощью:Изменение цвета полосы прокрутки программно
@Override
protected void beforeTopic(final Form f) {
int scrollColor=0x000000;
switch(userSelectedTopic)
{
case 1:
scrollColor=0x59be8a;
break;
case 2:
scrollColor = 0xff3333;
break;
.
.
.
}
// setting color to scroll thumb
Style s = UIManager.getInstance().getComponentStyle("ScrollThumb");
System.out.println(scrollColor);
s.setFgColor(scrollColor);
s.setBgColor(scrollColor);
s.setBgTransparency(255);
UIManager.getInstance().setComponentStyle("ScrollThumb", s);
s = UIManager.getInstance().getComponentStyle("ScrollThumb");
System.out.println("-->>"+s.getFgColor());
}
Что происходит, что код цвета выбрал правильно в первый раз. Когда эта форма вызывается снова, с другим выбором пользователя, значение цветового кода изменяется в соответствии с оператором коммутатора. Атрибуты стиля также изменяются.
Однако первоначальный цвет, применяемый к пальцу, преобладает!
Что может быть проблема?
Я пробовал f.refreshTheme(); но это, похоже, не работает. Он просто поддерживает первый нанесенный цвет