Hallo liebe Forum-Mitglieder,
ich beschäftige mich gerade zu Übungszwecken mit dem JSpinner und habe mir einen kleinen Spinner mit dem SpinnerNumberModel erstellt. Funktioniert soweit ganz gut. Allerdings möchte ich in der Methode "stateChanged()" einer Variablen "aktuell" den aktuellen Wert aus dem Spinner zuweisen. Leider verursacht dies eine "java.lang.ClassCastException".
Wie kommt das zustande und wie kann ich das Problem lösen?
Danke schon mal im Voraus!
Viele Grüße Chris
ich beschäftige mich gerade zu Übungszwecken mit dem JSpinner und habe mir einen kleinen Spinner mit dem SpinnerNumberModel erstellt. Funktioniert soweit ganz gut. Allerdings möchte ich in der Methode "stateChanged()" einer Variablen "aktuell" den aktuellen Wert aus dem Spinner zuweisen. Leider verursacht dies eine "java.lang.ClassCastException".
Wie kommt das zustande und wie kann ich das Problem lösen?
Danke schon mal im Voraus!
Viele Grüße Chris
Java:
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JSpinner;
import javax.swing.SpinnerNumberModel;
import javax.swing.WindowConstants;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class SpinnerDemo extends JFrame
{
/**
*
*/
private static final long serialVersionUID = -5260652152678682066L;
private static long max;
private static long min;
private static long increment;
private static long aktuell = -1;
private SpinnerNumberModel model;
private JSpinner spinner;
private JLabel meinLabel;
private static String s;
public SpinnerDemo()
{
super("SpinnerDemo");
setLayout(new BorderLayout());
setSize(250, 100);
setLocation(200, 200);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
final JLabel meinLabel = new JLabel();
meinLabel.setSize(230, 20);
meinLabel.setText("Klicke einen Wert!");
add(meinLabel);
// JSpinner wird erzeugt
model = new SpinnerNumberModel(aktuell, min, max, increment);
spinner = new JSpinner(model);
spinner.setSize(230, 20);
spinner.setValue(min);
ChangeListener l = new ChangeListener()
{
@Override
public void stateChanged(ChangeEvent e)
{
if (e.getSource() == spinner)
{
s = spinner.getValue().toString();
meinLabel.setText("Der Wert ist " + s + ".");
// aktuell = (long) spinner.getValue(); // verursacht java.lang.ClassCastException
// aktuell = Long.valueOf(s);
}
}
};
spinner.addChangeListener(l);
add(spinner);
{
meinLabel.add(spinner);
add(meinLabel);
setVisible(true);
}
}
public static void main(String[] args)
{
min = -10;
max = 10;
increment = 4;
SpinnerDemo sd = new SpinnerDemo();
}
}
Zuletzt bearbeitet von einem Moderator: