Literatur

JSpinner

JSpinner ist ein Steuerelement, welches der Klappliste ähnelt. Im Gegensatz zur JComboBox, bei der die komplette Liste aufgeklappt wird, wird beim JSpinner nur der aktuelle Wert angezeigt. JSpinner setzt sich aus drei Komponenten zusammen: zwei kleinen Pfeil-Buttons zum Navigieren durch die Liste und dem Editor, bei dem es sich standardmäßig um ein Panel mit einem formatierten Textfeld handelt. Der angezeigte Wert kann sowohl durch Klicken der Pfeiltasten als auch durch Überschreiben des Textfeldes verändert werden.

Sinnvollerweise verwendet man den JSpinner für Zahlen oder andere Objekte, die in einer geordneten Reihenfolge stehen, damit der Anwender weiß, ob er nach oben oder nach unten durch die Liste navigieren muss, um den gewünschten Wert auszuwählen.
Häufig wird JSpinner für numerische Werte verwendet wie etwa etwa Jahreszahlen.

Neben dem parameterlosen Standardkonstruktor besitzt die Klasse JSpinner einen weiteren Konstruktor:

Konstruktor Kurzbeschreibung
JSpinner(SpinnerModel model) Dieser Konstruktor erzeugt ein JSpinner-Objekt, dem ein SpinnerModel zugrunde gelegt wird. Über dieses Datenmodell wird der vorhergehende, aktuelle und nachfolgende Wert ermittelt.

Beispiel:

 
import javax.swing.*;
 
public class JSpinnerBeispiel {
 
	public static void main(String[] args) {
		JFrame meinJFrame = new JFrame();
		meinJFrame.setSize(50, 100);
		meinJFrame.setTitle("JSpinner Beispiel");
		JPanel meinPanel = new JPanel();
 
		//JSpinner wird erzeugt
		JSpinner spinner = new JSpinner();
 
		meinPanel.add(spinner);
		meinJFrame.add(meinPanel);
		meinJFrame.setVisible(true);
	}
}
 

JSpinner Beispiel

Da wir in unserem Beispiel kein SpinnerModel vorgeben, wird standardmäßig eine Instanz von SpinnerNumberModel verwendet, welche dafür sorgt, dass im JSpinner ein Integer-Wert (beginnend bei 0) angezeigt wird, der sich bei einem Klick auf die Pfeile um eins erhöht bzw. verringert.

Nachfolgend möchten wir einige ausgewählte Methoden der Klasse JSpinner vorstellen:

Methode Kurzbeschreibung
void addChangeListener(ChangeListener listener) Diese Methode fügt dem JSpinner einen ChangeListener hinzu, welcher über Veränderungen des Wertes (z. B. durch Klicken einer der Pfeiltasten oder Überschreiben des Textfeldes) benachrichtigt wird.
void commitEdit() Der aktuelle Wert des Textfeldes wird auf das SpinnerModel übertragen.
ChangeListener[] getChangeListeners() Diese Methode gibt ein Array mit allen hinzugefügten ChangeListenern zurück.
JComponent getEditor() Gibt den Editor des JSpinners zurück.
SpinnerModel getModel() Hier wird das zugrunde liegende SpinnerModel zurückgegeben.
Object getNextValue() Diese Methode liefert den Wert, welcher im Textfeld nach Drücken der Pfeiltaste "Oben" angezeigt wird.
Object getPreviousValue() Diese Methode liefert den Wert, welcher im Textfeld nach Drücken der Pfeiltaste "Unten" angezeigt wird.
Object getValue() Diese Methode gibt den aktuell angezeigten Wert zurück.
void removeChangeListener(ChangeListener listener) Entfernt den angegebenen ChangeListener wieder vom JSpinner.
void setEditor(JComponent editor) Die angegebene Komponente wird zum Editor des JSpinners.
void setModel(SpinnerModel model) Über diese Methode wird das SpinnerModel gesetzt.
void setValue(Object value) Mit dieser Methode wird der aktuelle Wert für das SpinnerModel gesetzt, welcher normalerweise auch im Editor angezeigt wird.


Unterthemen: