Ich hab ein Formatted Textfield, in dem 0-5 Zahlen eigegeben werden können.
Mit untenstehender Lösung hab ich das gemacht, indem ich die Stellen einfach mit '0' vorfülle.
Ich möchte die Felder aber leer haben.
Wenn ich den Placeholder einfach raus lasse, dann wird meine Zahl, die weniger als 5 Stellen hat, gar nicht erst angenommen, d.h. beim Setzen des Fokus außerhalb des Textfeldes wird meine Eingabe wieder gelöscht.
Also im Prinzip sollen 5 Masken gleichzeitig gesetzt werden, nämlich "#", "##", "###", "####", "#####".
Kann mir da jemand behilflich sein?
Mit untenstehender Lösung hab ich das gemacht, indem ich die Stellen einfach mit '0' vorfülle.
Ich möchte die Felder aber leer haben.
Wenn ich den Placeholder einfach raus lasse, dann wird meine Zahl, die weniger als 5 Stellen hat, gar nicht erst angenommen, d.h. beim Setzen des Fokus außerhalb des Textfeldes wird meine Eingabe wieder gelöscht.
Also im Prinzip sollen 5 Masken gleichzeitig gesetzt werden, nämlich "#", "##", "###", "####", "#####".
Kann mir da jemand behilflich sein?
Code:
DefaultFormatterFactory dff = getFormat("#####", '0');
zahlenfeld = new JFormattedTextField(dff);
zahlenfeld.setColumns(5);
xxx.add(zahlenfeld);
private DefaultFormatterFactory getFormat(String format, char placeHolder)
{
MaskFormatter mf;
try
{
mf = new MaskFormatter(format);
mf.setPlaceholderCharacter(placeHolder);
return new DefaultFormatterFactory(mf);
}
catch (ParseException e)
{
e.printStackTrace();
}
return new DefaultFormatterFactory();
}