Изменить цвет большого пальца и цвет фона JScrollPane?

У меня проблемы с стилизацией JScrollPane. Я просто хочу иметь возможность изменить цвет большого пальца и фона (а также удалить кнопки увеличения / уменьшения). До сих пор я пробовал следующее:

    this.setBackground(new Color(0,0,0));
    this.viewport.setBackground(new Color(0,0,0));
    this.getViewport().setBackground(Color.BLACK);
    this.setOpaque(false);
    this.getVerticalScrollBar().setUI(new BasicScrollBarUI()
    {   
        @Override
        protected JButton createDecreaseButton(int orientation) {
            return createZeroButton();
        }

        @Override    
        protected JButton createIncreaseButton(int orientation) {
              return createZeroButton();
        }
        @Override 
        protected void configureScrollBarColors(){

        }

    });

    this.getHorizontalScrollBar().setUI(new BasicScrollBarUI()
    {   
        @Override
        protected JButton createDecreaseButton(int orientation) {
            return createZeroButton();
        }

        @Override    
        protected JButton createIncreaseButton(int orientation) {
              return createZeroButton();
        }


    });
}
private JButton createZeroButton() {
    JButton jbutton = new JButton();
    jbutton.setPreferredSize(new Dimension(0, 0));
    jbutton.setMinimumSize(new Dimension(0, 0));
    jbutton.setMaximumSize(new Dimension(0, 0));
    return jbutton;
}

Также

   UIManager.put("ScrollBar.trackHighlightForeground", (new Color(57,57,57))); 
    UIManager.put("scrollbar", (new Color(57,57,57))); 
    UIManager.put("ScrollBar.thumb", new ColorUIResource(new Color(57,57,57))); 
    UIManager.put("ScrollBar.thumbHeight", 2); 
    UIManager.put("ScrollBar.background", (new Color(57,57,57)));
    UIManager.put("ScrollBar.thumbDarkShadow", new ColorUIResource(new Color(57,57,57)));
    UIManager.put("ScrollBar.thumbShadow", new ColorUIResource(new Color(57,57,57)));
    UIManager.put("ScrollBar.thumbHighlight", new ColorUIResource(new Color(57,57,57)));
    UIManager.put("ScrollBar.trackForeground", new ColorUIResource(new Color(57,57,57)));
    UIManager.put("ScrollBar.trackHighlight", new ColorUIResource(new Color(57,57,57)));
    UIManager.put("ScrollBar.foreground", new ColorUIResource(new Color(57,57,57)));
    UIManager.put("ScrollBar.shadow", new ColorUIResource(new Color(57,57,57)));
    UIManager.put("ScrollBar.highlight", new ColorUIResource(new Color(57,57,57)));

Со всем приведенным выше кодом я получаю затемненный большой палец на белом фоне. Как ни странно, если я уберу функции setUI, я получу большой палец по умолчанию с затемненным фоном.

Есть идеи?

Спасибо


Решено******


вышеприведенную функцию configureScrollBarColors можно использовать следующим образом:

 @Override 
        protected void configureScrollBarColors(){
            this.thumbColor = Color.GREEN;
        }

Это меняет цвет большого пальца на зеленый.

1 ответ

На всякий случай, если кто-то там все еще падает на эту ветку в поисках помощи:

Следующая строка может быть использована для изменения внешнего вида вашей полосы прокрутки. Поля, окруженные символами "_", могут быть изменены (ключ и ЦВЕТ).

UIManager.put("ScrollBar._key_", new ColorUIResource(_COLOR_));

Наиболее важные ключи для изменения цвета вашей панели:

  • thumb (Общий цвет большого пальца)
  • thumbDarkShadow (Оставшаяся часть большого пальца)
  • thumbShadow (По существу это граница для большого пальца, которая разделена пополам с подсветкой)
  • thumbHighlight (Вторая половина указанного вида границы)
  • track (фон)

Вот пример:

UIManager.put("ScrollBar.thumb", new ColorUIResource(Color.black));

Это сделало бы основную часть большого пальца черной.

Если вы собираетесь использовать полноцветный большой палец, используйте все клавиши, кроме дорожки, и установите для них один и тот же цвет.

Если вы собираетесь наброски, установите первые два как color1, а вторые два как color2.

Я упал на это, пытаясь улучшить свой собственный графический интерфейс, и после некоторой незначительной настройки решил поделиться своими выводами.

Для получения дополнительных ключей нажмите меня!

Другие вопросы по тегам