2014-04-12 28 views
6

Mam problem ze stylizowaniem JScrollPane. Chcę tylko móc zmienić kolor kciuka i tła (a także usunąć przyciski zwiększania/zmniejszania). Do tej pory próbowałem co następuje:Zmiana koloru kciuka i koloru tła 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; 
} 

także

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))); 

ze wszystkimi powyższym kodzie Dostaję przyciemniony kciuk z białym tłem. Zabawne jeśli usunę funkcje setUI, otrzymam domyślny kciuk z przyciemnionym tłem ..

Jakieś pomysły?

Dzięki


SOLVED ** * ** *


funkcja configureScrollBarColors powyżej mogą być używane w następujący sposób:

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

To zmienia kolor kciuka na zielony.

Odpowiedz

1

wszelki wypadek ktoś tam jest wciąż spada na tego wątku szuka pomocy:

Poniższy wiersz może być używany, aby zmienić wygląd paska przewijania. Pola otoczone znakami "_" można zmienić (klawisz i KOLOR).

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

najbardziej odpowiednich klawiszy na zmianę koloru paska są:

  • thumb (General kolor kciuka)
  • thumbDarkShadow (Pozostała zasłonięta część kciuka)
  • thumbShadow (Zasadniczo obramowanie kciuka podzielone na pół z podświetleniem)
  • thumbHighlight (Druga połowa wspomnianej granicy rodzaj)
  • track (tło)

Więc przykładem będzie:

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

To może sprawić, że główna część kciuka czarny.

Jeśli wybierasz pełny, jednokolorowy kciuk, użyj wszystkich klawiszy poza ścieżką i ustaw je na ten sam kolor.

Jeśli wybierasz kontur, ustaw dwa pierwsze jako color1, a dwa jako color2.

Wpadłem na to, próbując poprawić własny interfejs graficzny i po drobnych poprawkach myślałem, że podzielę się moimi odkryciami.

For more keys click me!