Персонализирано показване на действителните ленти за превъртане на JScrollPane (направете прозрачни)

Имам текстова област с JScrollPane и настройвам дисплея с неща като;

    JTextArea text = new JTextArea();
    text.setOpaque(false);
    text.setFont(...);
    text.setForeground(Color.white);
    text.setBackground(Color.black);
    JScrollPane scroll = new JScrollPane(text);
    scroll.setOpaque(false);
    scroll.getViewport().setOpaque(false);

и зоната за превъртане и текст се показват като прозрачни (непрозрачни), но изглежда не мога да повлияя на действителните ленти за превъртане. Те все още се показват като сив цвят по подразбиране, където бих искал да променя цвета им и/или да ги направя прозрачни, за да съответстват на останалите.

Опитвал съм неща като

     scroll.setBackground(Color.black);
     scroll.getVerticalScrollBar().setOpaque(false);

но няма никаква разлика.

Какъв е предпочитаният начин да направите персонализиран дисплей за лентите за превъртане?


person Toby    schedule 12.08.2013    source източник
comment
не е възможно в общия случай: как/ако/какво точно е нарисувано като фон е силно зависимо от LAF, т.е. Металът приема прозрачното, Win изобщо не го прави. Нищо не можете да направите, освен да опитате да разширите LAF (както @mKorbel вече предложи)   -  person kleopatra    schedule 12.08.2013


Отговори (1)


и зоната за превъртане и текст се показват като прозрачни (непрозрачни), но изглежда не мога да повлияя на действителните ленти за превъртане. Те все още се показват като сив цвят по подразбиране, където бих искал да променя цвета им и/или да ги направя прозрачни, за да съответстват на останалите.

има два начина

  • ще трябва да замените BasicScrollBarUI(),

  • без никакви commnet милиони долара бебе от @aterai,

  • има само VerticalScrollBar, трябва да замените и добавите HorizontalScrollBar към ScrollPaneLayout(), което връща координирано за Horizontal JScrollBar,

person mKorbel    schedule 12.08.2013
comment
Трудно ми беше да разбера повече за замяната на UI класове (като BasicScrollBarUI). Някакви указания за по-добро четене или можете ли да разширите малко отговора? - person Toby; 12.08.2013