Java Eingabe bei JFormattedTextField mit MaskFormatter

Fonce

Captain
Dabei seit
Feb. 2006
Beiträge
3.304
Hi,
ich hab irgendwie ein leichtes Verständnis Problem.

Ich habe mir folgende Klasse geschrieben.
Code:
/**
 * 
 */
import java.text.ParseException;

import javax.swing.JFormattedTextField;
import javax.swing.text.MaskFormatter;

/**
 * @author julian
 * 
 */
@SuppressWarnings("serial")
public class JSerialNumberField extends JFormattedTextField {
    public JSerialNumberField() {
	super();
	setColumns(29);
	try {
	    MaskFormatter mf = new MaskFormatter();
	    mf.setMask("AAAAA-AAAAA-AAAAA-AAAAA-AAAAA");
	    setFormatter(mf);
	} catch (ParseException e) {
	    e.printStackTrace();
	}
    }
}

Nach dem Start der Anwendung sieht das Textfeld dann nach diesem Muster aus.

Code:
"     -     -     -     -     "

Normal sollte das Eingabefeld doch nun so reagieren, das es nur noch fünf Blöcke mit jeweils fünf Zeichen annimmt. Wenn ich aber nun eine Eingabe tätige, ersetzt er die Platzhalter nicht, sondern schiebt die Maske nur nach hinten.
Ein manuelles setzen des OverwriteMode bringt auch nicht(Sollte ja eh per default auf true gesetzt sein)

Ich kapier halt nicht so ganz wieso er die Platzhalter nicht überschreibt...:rolleyes:

EDIT:
mh...ok wenn ich nach setFormatter(mf); noch setText(""); ausführe klappt alles wie es soll :)
 
Zuletzt bearbeitet:
Top