Mit ChangeListener JSpinner Loop erstellen

Lybrial

Bekanntes Mitglied
Hallo,

ich benutze zum ersten mal JSpinner und frage mich, wie ich mit einem ChangeListener einen
Loop erzeugen kann, der durch die Elemente switcht.

Beispiel:

Java:
SpinnerNumberModel model = new SpinnerNumberModel(set, min, max, step);
JSpinner spinner = new JSpinner(model);

So jetzt adde ich einen ChangeListener, den meine Klasse implementiert

Java:
spinner.addChangeListener(this);

Der Listener sieht bis jetzt so aus, er ist unvollständig:

Java:
public void stateChanged(ChangeEvent e){
		JSpinner spinner = (JSpinner)e.getSource();
		if(spinner.getValue().equals(min)){
			spinner.setValue(max);
		}
		if(spinner.getValue().equals(max)){
			spinner.setValue(min);
		}
	}

So jetzt meine Frage. Es gibt die Möglichkeit beim meinem
SpinnerNumberModel auf das Minimum und Maximum zuzugreifen:

Java:
model.getMaximum()
model.getMinimum()

Wenn ich das jetzt allerdings über meinen ChangListener versuche,
habe ich diese Auswahl nicht:

Java:
public void stateChanged(ChangeEvent e){
		JSpinner spinner = (JSpinner)e.getSource();
		if(spinner.getValue().equals(spinner.getModel().???????)){ //hier weder getMin noch Max
			spinner.setValue(max);
		}
		if(spinner.getValue().equals(max)){
			spinner.setValue(min);
		}
	}

Wieso habe ich die Auswahl nicht und wie bekomme ich es trotzdem hin?
 
Java:
public void stateChanged(ChangeEvent e){
		JSpinner spinner = (JSpinner)e.getSource();
                SpinnerNumberModel model = (SpinnerNumberModel)spinner.getModel(); // Casten 
		if(spinner.getValue().equals(model.getMinValue){
			spinner.setValue(max);
		}
...
Man muss wissen, dass es ein SpinnerNumberModel ist, und nicht irgendein anderes SpinnerModel
 

Neue Themen


Zurück
Oben