Hallo Leute,
ich wollte mir einen JSpinner mit Datum/Uhrzeit als veränderbaren Wert erzeugen. Das ist mir auch gelungen. Mir gefiel aber nicht, dass der Spinner nur den Wert, der am weitesten Links steht, ändert. Ich hab mich einwenig im Internet schlau gemacht und in einem anderen Forum zwei Lösungen gefunden. Eine Lösung ist es dem SpinnerDateModel Konstruktor das Feld mitzugeben das man ändern möchte z.B.:
Das klappt leider nicht. Egal was man bei dem vierten Parameter eingibt wird immer der Wert auf der linken Seite geändert.
Die Zweite Lösung ist die folgende (ich möchte die Minuten ändern):
Die Lösung funktioniert zwar aber ich hab irgendwie ein mulmiges Gefühl dabei, da mir dies nicht "elegant" bzw. "sauber" scheint.
Was meint ihr dazu?
Das Forum mit den Lösungen ist hier.
mfg,
ich wollte mir einen JSpinner mit Datum/Uhrzeit als veränderbaren Wert erzeugen. Das ist mir auch gelungen. Mir gefiel aber nicht, dass der Spinner nur den Wert, der am weitesten Links steht, ändert. Ich hab mich einwenig im Internet schlau gemacht und in einem anderen Forum zwei Lösungen gefunden. Eine Lösung ist es dem SpinnerDateModel Konstruktor das Feld mitzugeben das man ändern möchte z.B.:
Java:
JSpinner spinner = new JSpinner(new SpinnerDateModel(new Date(),
null, null, Calendar.YEAR));
Die Zweite Lösung ist die folgende (ich möchte die Minuten ändern):
Java:
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Calendar;
import java.util.Date;
import javax.swing.JFrame;
import javax.swing.JSpinner;
import javax.swing.SpinnerDateModel;
public class SpinnerTest extends JFrame {
public SpinnerTest() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(new Dimension(200,200));
setLocationRelativeTo(null);
final JSpinner spinner = new JSpinner(new SpinnerDateModel(new Date(),
null, null, Calendar.YEAR));
spinner.setEditor(new JSpinner.DateEditor(spinner,
"hh:mm:ss dd.MM.yyyy"));
getContentPane().add(spinner);
ActionListener al = new ActionListener() {
public void actionPerformed(ActionEvent ae) {
((JSpinner.DefaultEditor) spinner.getEditor()).getTextField()
.setCaretPosition(3);
}
};
javax.swing.Timer timer = new javax.swing.Timer(1000, al);
timer.setRepeats(false);
timer.start();
pack();
}
public static void main(String[] args) {
new SpinnerTest().setVisible(true);
}
}
Was meint ihr dazu?
Das Forum mit den Lösungen ist hier.
mfg,