2016-10-10 2 views
3

Как установить цвет ScrollBar с помощью настраиваемого BasicScrollBarUI?Обновление цвета пользовательского интерфейса ScrollBar UI

Я знаю, что я могу использовать это, чтобы установить цвет в первый раз:

protected void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds) 

Однако, это называется конструктором, я не могу назвать его снова вручную.

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

Как это сделать?

+3

[вы можете начать с кодом] (http://stackoverflow.com/a/16375805/714968), размещенные @aterai – mKorbel

ответ

0

Я не уверен, что вам нужно, но, пожалуйста, дайте мне знать, если это помогает

ScrollView scr = (ScrollView)findViewById(R.id.scrollView1); 
try 
{ 
Field mScrollCacheField = View.class.getDeclaredField("mScrollCache"); 
mScrollCacheField.setAccessible(true); 
Object mScrollCache = mScrollCacheField.get(scr); // scr is your Scroll View 

Field scrollBarField = mScrollCache.getClass().getDeclaredField("scrollBar"); 
scrollBarField.setAccessible(true); 
Object scrollBar = scrollBarField.get(mScrollCache); 

Method method = scrollBar.getClass().getDeclaredMethod("setVerticalThumbDrawable", Drawable.class); 
method.setAccessible(true); 

// Set your drawable here. 
method.invoke(scrollBar, getResources().getDrawable(R.drawable.scrollbar_blue)); 
} catch(Exception e) { 
e.printStackTrace(); 
} 

listview.mScrollCache.scrollBar.setVerticalThumbDrawable(getResources().getDrawable(R.drawable.scrollbar_style)); 
Смежные вопросы