Literatur

JScrollBar

Eine JScrollbar wird benötigt, wenn ein Inhalt (z.B. ein Text) nicht mehr komplett angezeigt werden kann. Eine Scrollbar ist ein Schiebebalken, mit dem man den Inhalt in den sichtbaren Bereich verschieben kann, wie man es z.B. vom Lesen von Webseiten im Browser kennt.

Die Scrollbar kann vertikal (oben/unten) oder horizontal (links/rechts) ausgerichtet sein.

Da man Elemente, die ein Scrollen erforderlich machen, meistens auf einem JScrollPane platziert, das bereits die Scroll-Funktionalität implementiert hat, wollen wir hier nur kurz auf einige Eigenschaften zu sprechen kommen.

Neben dem parameterlosen Standardkonstruktor besitzt die Klasse JScrollBar folgende weitere Konstruktoren:

Konstruktor Kurzbeschreibung
JScrollBar(int orientation) Eine JScrollBar mit der angegebenen Ausrichtung wird erzeugt. Die Ausrichtung wird als Integer-Wert angegeben, für den die Klasse JScrollBar zwei statische Konstanten bietet: VERTICAL und HORIZONTAL.
JScrollBar(int orientation, int value, int extent, int min, int max

Dieser Konstruktor enthält neben der Ausrichtung (siehe oben) weitere Parameter.  Der zweite Parameter (value) gibt an, wo sich der Schiebebalken im Wertebereich zwischen min und max gerade befindet. Der dritte Parameter (extent) steht für die Größe des Schiebers. Dieser darf maximal so groß sein wie der Wertebereich (extend <= max - min). extend gibt außerdem vor, wie groß die Verschiebung beim Scrollen ist.

Werden die  Konstruktoren JScrollBar() oder JScrollBar(int orientation) verwendet, so wird ein vertikaler Schiebebalken erzeugt, dessen Eigenschaften wie folgt vorbelegt werden:

minimum: 0
maximum: 100
value: 0
extend: 10

Die Klasse JScrollBar implementiert das Interface java.awt.Adjustable. Dieses sieht einige Methoden vor, welche wir in der folgenden Tabelle näher erläutern möchten:

Methode Kurzbeschreibung
void addAdjustmentListener(AdjustmentListener l) Fügt der Scrollbar einen AdjustmentListener hinzu. Wenn sich Werte der Scrollbar verändern, wird ein AdjustmentEvent ausgelöst, wodurch die Methode adjustmentValueChanged(AdjustmentEvent) des eingetragenen Listeners aufgerufen wird. Dort wird das entsprechende Verhalten implementiert.
AdjustmentListener [ ] getAdjustmentListeners() Liefert alle für die Scrollbar registrierten AdjustmentListener in einem Array zurück.

int getBlockIncrement()

Gibt den Wert zurück, um den sich der Wert der Scrollbar ändert, wenn sie um einen Block (Klick zwischen Schieberegler und Pfeiltasten) verschoben wird.
int getMaximum() Diese Methode liefert den größten Wert, den die Scrollbar annehmen kann, zurück. Dieser beträgt maximum - extend.
int getMinimum() Diese Methode liefert den kleinstmöglichen Wert der Scrollbar zurück.
int getOrientation() Hier wird die Ausrichtung der Scrollbar zurückgegeben (entspricht der Konstanten HORIZONTAL oder VERTICAL).

int getUnitIncrement()

Gibt den Wert zurück, um den sich der Wert der Scrollbar ändert, wenn sie um eine Einheit (Anklicken des Pfeils) nach links/rechts bzw. oben/unten verschoben wurde.
int getValue() Diese Methode liefert den Wert bzw. die Position, an der sich der Scrollbalken aktuell befindet, zurück.
int getVisibleAmount() Gibt die Größe des sichtbaren Bereiches des Scrollbalken zurück (entspricht der Größe des Schiebers).
void removeAdjustmentListener (AdjustmentListener l) Entfernt den angegebenen AdjustmentListener.
void setBlockIncrement(int blockIncrement) Setzt den Wert, um den sich der Wert/Position der Scrollbar verändern soll, wenn sie um einen Block (Klick zwischen Schieberegler und Pfeiltasten) verschoben wird.
void setMaximum(int max) Diese Methode setzt den höchstmöglichen Wert, den die Scrollbar annehmen kann.
void setMinimum(int min) Diese Methode setzt den kleinstmöglichen Wert, den die Scrollbar annehmen kann.
void setUnitIncrement(int unitIncrement) Setzt den Wert, um den sich der Wert/Position der Scrollbar verändern soll, wenn sie um eine Einheit (Klick auf die Pfeiltaste) verschoben wird.
void setValue(int v) Hier wird der Scrollbalken an die angebene Position gesetzt.
void setVisibleAmount(int v) Mit dieser Methode setzt man die Größe des sichtbaren Bereichs (Größe des Schiebers).

Beispiel für das Einbinden einer JScrollBar:

 
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollBar;
 
public class JScrollBarBeispiel {
    public static void main(String[] args) {
        JFrame meinJFrame = new JFrame();
        meinJFrame.setTitle("JScrollBar Beispiel");
        meinJFrame.setSize(50, 100);
        JPanel panel = new JPanel();
 
        //JScrollBar wird erzeugt
        JScrollBar scrollbar = new JScrollBar
                (JScrollBar.HORIZONTAL, 30, 10, 0, 100);
        //...und dem JPanel hinzugefügt
        panel.add(scrollbar);
 
        meinJFrame.add(panel);
        meinJFrame.setVisible(true);
 
    }
}
 

Scrollbar in Java

Sie sehen, dass der Scrollbalken sich bei ca. einem Drittel (aktueller Wert, zweiter Parameter im Konstruktor) befindet. Dies entspricht dem Verhältnis des gesetzten Wertes (zweiter Parameter im Konstruktor) zum Wertebereich (0-100). Das Beispiel macht ohne Inhalt, der gescrollt werden soll, natürlich wenig Sinn. Damit bei einer Veränderung des Scrollbalkens auch etwas passiert, muss man der JScrollBar einen AdjustmentListener hinzufügen.  Listener lernen Sie im Kapitel Event-Handling kennen.