Titel | Inhalt | Suchen | Index | DOC | Handbuch der Java-Programmierung, 7. Auflage |
<< | < | > | >> | API | Kapitel 32 - AWT-Dialogelemente |
Ein Scrollbar ist ein Schieberegler, der zur quasianalogen Anzeige und Eingabe eines Werts aus einem vorgegebenen Wertebereich verwendet werden kann. Der Schieberegler kann entweder horizontal oder vertikal angeordnet werden und besitzt einen Schieber, dessen Größe veränderlich ist. Der interne Wert eines Schiebereglers und die Anzeigeposition seines Schiebers sind untrennbar miteinander verbunden. Ändert der Anwender die Position des Schiebers, ändert sich automatisch auch sein interner Wert. Wird vom Programm der Wert verändert, führt dies auch zu einer Repositionierung des Schiebers.
public Scrollbar() public Scrollbar(int orientation) public Scrollbar( int orientation, int value, int visible, int minimum, int maximum ) |
java.awt.Scrollbar |
Der parameterlose Konstruktor erzeugt einen vertikalen Schieberegler. Mit dem Parameter orientation kann die Orientierung festgelegt werden. Hier kann eine der Konstanten Scrollbar.HORIZONTAL oder Scrollbar.VERTICAL angegeben werden.
Der dritte Konstruktor erlaubt die Angabe weiterer Eigenschaften. minimum und maximum spezifizieren die Grenzen des repräsentierten Wertebereichs. Die untere Grenze liegt bei einem vertikalen Schieberegler oben und bei einem horizontalen Schieberegler auf der linken Seite. Mit value kann der Anfangswert des Schiebers festgelegt werden.
Der Parameter visible dient dazu, die Seitengröße des Schiebers zu bestimmen. Diese muss kleiner als der Wertebereich des Schiebereglers sein. Die Seitengröße bestimmt einerseits die visuelle Größe des Schiebers und andererseits die Größe der Veränderung des Werts, wenn der Anwender auf die Schaltfläche zwischen Schieber und Button des Schiebereglers klickt.
Die Methoden der Klasse Scrollbar realisieren den Zugriff auf die Attribute des Schiebereglers. Die meisten von ihnen sind im Interface Adjustable definiert, das von Scrollbar implementiert wird. Mit getValue und setValue wird auf den aktuellen Wert des Schiebers zugegriffen, mit getMinimum und getMaximum auf die Grenzen des Wertebereichs und mit getVisibleAmount auf die Größe des Schiebers. Zusätzlich kann mit getUnitIncrement und setUnitIncrement sowie mit getBlockIncrement und setBlockIncrement auf die Parameter zugegriffen werden, die die Stärke der Veränderung des Werts beim Klicken auf die Buttons bzw. die Schaltfläche zwischen Schieber und Buttons bestimmen.
public int getValue() public void setValue(int value) public int getMinimum() public int getMaximum() public int getVisible() public int getUnitIncrement() public void setUnitIncrement(int l) public int getBlockIncrement() public void setBlockIncrement(int l) |
java.awt.Scrollbar |
Ein Scrollbar sendet Adjustment-Ereignisse an seine Ereignisempfänger. Diese müssen das Interface AdjustmentListener implementieren und sich durch Aufruf von addAdjustmentListener registrieren:
public void addAdjustmentListener(AdjustmentListener l) |
java.awt.Scrollbar |
Das Adjustment-Ereignis führt im Ereignisempfänger zum Aufruf der Methode adjustmentValueChanged, die ein AdjustmentEvent übergeben bekommt:
public abstract void adjustmentValueChanged(AdjustmentEvent e) |
java.awt.event.AdjustmentListener |
Dieses besitzt die Methoden getAdjustable und getValue. Mit der erstgenannten kann der auslösende Scrollbar, mit letzterer der aktuelle Wert des Schiebereglers bestimmt werden. Zusätzlich gibt es die Methode getAdjustmentType, die Auskunft darüber gibt, welche Benutzeraktion zur Auslösung des Ereignisses führte. Tabelle 32.1 listet die möglichen Konstanten auf, die von getAdjustmentType zurückgegeben werden können, und beschreibt ihre Bedeutung.
Konstante | Bedeutung |
UNIT_INCREMENT | Der Wert wurde durch Klicken eines Buttons um eine Einheit erhöht. |
UNIT_DECREMENT | Der Wert wurde durch Klicken eines Buttons um eine Einheit vermindert. |
BLOCK_INCREMENT | Der Wert wurde durch Klicken der Schaltfläche zwischen Button und Schieber um eine Seite erhöht. |
BLOCK_DECREMENT | Der Wert wurde durch Klicken der Schaltfläche zwischen Button und Schieber um eine Seite vermindert. |
TRACK | Der Wert wurde durch Ziehen des Schiebers verändert. |
Tabelle 32.1: Konstanten für Schieberegler-Ereignisse
Eine beispielhafte Implementierung von adjustmentValueChanged könnte etwa so aussehen:
001 /* Scrollbar.inc */ 002 003 public void adjustmentValueChanged(AdjustmentEvent event) 004 { 005 Adjustable sb = event.getAdjustable(); 006 if (sb.getOrientation() == Scrollbar.HORIZONTAL) { 007 System.out.print("Horizontal: "); 008 } else { 009 System.out.print("Vertikal: "); 010 } 011 switch (event.getAdjustmentType()) { 012 case AdjustmentEvent.UNIT_INCREMENT: 013 System.out.println("AdjustmentEvent.UNIT_INCREMENT"); 014 break; 015 case AdjustmentEvent.UNIT_DECREMENT: 016 System.out.println("AdjustmentEvent.UNIT_DECREMENT"); 017 break; 018 case AdjustmentEvent.BLOCK_DECREMENT: 019 System.out.println("AdjustmentEvent.BLOCK_DECREMENT"); 020 break; 021 case AdjustmentEvent.BLOCK_INCREMENT: 022 System.out.println("AdjustmentEvent.BLOCK_INCREMENT"); 023 break; 024 case AdjustmentEvent.TRACK: 025 System.out.println("AdjustmentEvent.TRACK"); 026 break; 027 } 028 System.out.println(" value: " + event.getValue()); 029 } 030 031 private void customizeLayout(Panel panel) 032 { 033 panel.setLayout(new BorderLayout()); 034 Scrollbar hsb=new Scrollbar(Scrollbar.HORIZONTAL,1,10,1,100); 035 hsb.addAdjustmentListener(this); 036 panel.add(hsb, BorderLayout.SOUTH); 037 Scrollbar vsb=new Scrollbar(Scrollbar.VERTICAL, 1,10,1,100); 038 vsb.addAdjustmentListener(this); 039 panel.add(vsb, BorderLayout.EAST); 040 } |
Scrollbar.inc |
Abbildung 32.10: Ein Dialog mit zwei Schiebereglern
Titel | Inhalt | Suchen | Index | DOC | Handbuch der Java-Programmierung, 7. Auflage, Addison Wesley, Version 7.0 |
<< | < | > | >> | API | © 1998, 2011 Guido Krüger & Heiko Hansen, http://www.javabuch.de |