2014-04-12 13 views
6

Ich habe Probleme beim Stylen eines JScrollPane. Ich möchte nur die Farbe sowohl des Daumens als auch des Hintergrunds ändern können (und auch die Tasten zum Erhöhen/Verringern entfernen). Bisher habe ich folgendes versucht:Ändern der Daumen- und Hintergrundfarbe eines 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; 
} 

Auch

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

Mit all den oben genannten Code ich einen abgedunkelten Daumen mit einem weißen Hintergrund erhalten. Lustigerweise, wenn ich die SetUI-Funktionen entferne, bekomme ich einen Standard-Daumen mit einem dunklen Hintergrund.

Irgendwelche Ideen?

Dank


GELÖST ** * ** *


die configureScrollBarColors obige Funktion kann auf folgende Weise verwendet werden:

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

Das ändert die Farbe des Daumens in grün.

Antwort

1

Nur falls jemand da draußen fällt immer noch auf diesem Thread der Suche nach Hilfe:

Die folgende Zeile verwendet werden kann, um zu sehen Ihre Scrollbar zu ändern. Die von "_" Zeichen umgebenen Felder können geändert werden (Schlüssel und FARBE).

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

Die wichtigsten Tasten für die Farbe Ihrer Bar zu ändern sind:

  • thumb (Allgemeine Farbe Faust)
  • thumbDarkShadow (Rest beschatteter Teil des Daumens)
  • thumbShadow (im Wesentlichen eine Grenze für den Daumen, die in der Mitte mit Highlight geteilt wird)
  • thumbHighlight (Zweite Hälfte der genannten Grenze Art)
  • track (Hintergrund)

So ein Beispiel wäre:

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

Dies würde der Hauptteil des Daumens schwarz machen.

Wenn Sie für einen vollen einfarbigen Daumen gehen, dann verwenden Sie alle Tasten mit Ausnahme der Spur und stellen Sie sie auf die gleiche Farbe.

Wenn Sie für eine Gliederung gehen, legen Sie die ersten zwei als color1 und die zweiten als color2 fest.

Ich fiel auf diese beim Versuch, meine eigene GUI zu verbessern und nach ein paar kleinen Feinschliff dachte ich meine Erkenntnisse teilen.

For more keys click me!