Textfeld zur formatierten Uhrzeit-Eingabe

January

Mitglied
Hallo zusammen.

Ich möchte ein Textfeld erzeugen, in das man eine Uhrzeit eingeben kann. Format soll sein hh:mm. Der Doppelpunkt soll nicht verändert werden dürfen, hh soll nur werte zwischen 00 und 23 und mm nur werte zwischen 00 und 59 annehmen können.

Mein Ansatz ist folgender:
Java:
JFormattedTextField buchungsEintragStart = new JFormattedTextField(erzeugeFormat("##:##"));
buchungsEintragStart.setText("00:00");

	protected MaskFormatter erzeugeFormat(String eingabe){
		MaskFormatter format = null;
		try {
		    format = new MaskFormatter(eingabe);
		} catch (java.text.ParseException exc) {
		    System.err.println("formatter is bad: " + exc.getMessage());
		    System.exit(-1);
		}
		return format;
		}

Bei dieser "Lösung" kann man aber immer noch beliebige Zahlen eingeben. Habe leider nichts dazu gefunden, wie man das Format weiter einschränken kann. Hat jemand eine Idee oder einen (anderen ) Ansatz für mich?

Danke! January
 
Hallo January,

vielleicht mit JSpinner

Java:
SpinnerDateModel spinnerModel = new SpinnerDateModel();  //als Instanzvar. dekl.
JSpinner spinner = new JSpinner(spinnerModel);
spinner.setEditor(new JSpinner.DateEditor(spinner, "HH:mm"));
spinner.addChangeListener(new ChangeListener(){
    public void stateChanged(ChangeEvent e) {
         Calendar time = new GregorianCalendar();
         time.setTime(spinnerModel.getDate());
         int hour = time.get(Calendar.HOUR_OF_DAY);
         int minute = time.get(Calendar.MINUTE);
         //System.out.println(hour + ":" + minute);
    }
});

weitere Infos hier: http://download.oracle.com/javase/tutorial/uiswing/components/spinner.html

Gruß Attila
 
Ist auch einfacher hier reinkopierten code zu nehmen als sich durch gegebene URL's zu lesen, hm? ;)
 
Ist auch einfacher hier reinkopierten code zu nehmen als sich durch gegebene URL's zu lesen, hm? ;)

Auf jeden Fall! Bin ein großer Freund von Code in Foren, da Links in der Regel nach einer gewissen Zeit nicht mehr funktionieren. Habe mir aber auch die Seiten von dir durchgelesen. Kam aber im Prinzip aufs gleiche raus.

Gruß, January
 
Ja irgendwan gehen die links nicht mehr, deswegen hab ich auch die Stichwoerter hingeschrieben, sodass man weiss wonach man suchen muss. Und dafuer das man versucht hat zu helfen, was rausgesucht hat bekommt man kein Danke. Oo
Wuerde man keinen jspinner wollen, sondern nur ein Textfeld, haetten dir die links geholfen.
 
Und dafuer das man versucht hat zu helfen, was rausgesucht hat bekommt man kein Danke. Oo
.
1.) war das schriftliche "Danke" in Beitrag #4für euch beide gedacht. Ich habe nicht "nur" AttilaF gedankt, sondern nur geschrieben, dass ich seine/ihre Variante genommen habe.
2.) habe ich sehr wohl die Danke-Funktion für deinen Beitrag (#3) direkt nach dem Lesen genutzt. Bei mir steht seither auch der "Du hast dich für diesen Beitrag bedankt"- Eintrag drunter. Keine Ahnung, warum das bei dir nicht angezeigt wird.

Gruß, January
 

Neue Beiträge

Zurück