Startseite
Klassenlexikon

Klasse JSlider

Namensraum Vererbungshierarchie Schnittstellen
javax.swing
java.lang.Object
  java.awt.Component
    java.awt.Container
      javax.swing.JComponent
        JSlider
Accessible
ImageObserver
MenuContainer
Serializable
SwingConstants
Kurzbeschreibung

Eine Instanz stellt einen Schieberegler dar, mit dem der Anwender einen ganzzahligen Wert aus einem vorgegebenen beschränkten Wertebereich auswählen kann.


Java SE 6http://docs.oracle.com/javase/6/docs/api/javax/swing/JSlider.html
Java SE 7http://docs.oracle.com/javase/7/docs/api/javax/swing/JSlider.html
Java SE 8http://docs.oracle.com/javase/8/docs/api/javax/swing/JSlider.html

Hinweise zur Trennung von Datenmodell und Ansicht

Das Datenmodell einer Instanz von JSlider muss die Schnittstelle BoundedRangeModel bereitstellen. Im Allgemeinen wird man eine Instanz von DefaultBoundedRangeModel als Datenmodell verwenden. Veränderungen des eingestellten Werts werden an ein beim Schieberegler registriertes Objekt gemeldet, das die Schnittstelle ChangeListener bereitstellen muss.

Verwendung in visuellen Komponenten mit wechselndem Inhalt

In visuellen Komponenten mit wechselndem Inhalt kooperiert ein langlebiges Datenmodell mit einer bei Bedarf erzeugten Instanz von eines Schiebereglers. Da das Datenmodel die Lebenszeit des Schiebereglers überdauern kann, muss der Schieberegler sich von seinem Datenmodell abmelden, wenn er aus der visuellen Komponente entfernt wird. Für die Lösung dieser Aufgabe muss eine Unterklasse von JSlider definiert werden, in der die folgende Methode bereitgestellt werden muss:

    @Override
    public void removeNotify() {
        super.removeNotify();
        this.setModel(new DefaultBoundedRangeModel());
        // The installation of a new model disconnects the old model
        //  from this slider. I found no other way to accomplish this.
    }

Die wesentliche Ergänzung ist hier der Aufruf von setModel. Durch die Angabe eines neuen Datenmodells wird die Verbindung zum alten Datenmodell gelöst. Ein neues Modell muss angegeben werden, da es nicht möglichist, setModel mit dem Wert null aufzurufen.


Startseite
Klassenlexikon