JFormattedTextField Zahleneingabe auch mit beginnender 0

Aruhn

Mitglied
Hallo Java Forum,
ich bin schon mitterweile fast verzweifelt wie ich eine JFormattedTextField Zifferneingabe mit 0 beginnen kann.

Ziel ist es in dem Film eine Telefon- bzw. Handynummer einzugeben. Die die Nummern ja nicht immer eine feste Länge haben fällt für mich ein spezifizierter MaskFormatter flach, wo ja eine beginnende 0 kein Problem wäre.
Einzige Begrenzung ist das die Ziffer maximal 15 Ziffern lang sein darf.

Da nur die Eingabe von Nummern zulässig sein soll verwende ich den NumberFormatter.
Das sieht wie folgt aus:
Java:
[...]
		NumberFormat num = NumberFormat.getInstance(Locale.GERMAN);
		num.setParseIntegerOnly(true);
		num.setMaximumFractionDigits(0);
		num.setGroupingUsed(false);
		num.setMaximumIntegerDigits(15);

		NumberFormatter zahl = new NumberFormatter(num);
[...]
JFormattedTextField ftfZahlfeld = new JFormattedTextField(zahl);

Ob ich NumberFormatter zahl oder nur NumberFormat num im JFormattedTextField verwende, stets schneidet er die Eingabe einer 0 als Beginn der Ziffereingabe ab.
Wie bekomm ich hin das er dies eben nicht tut?


Über jede Hilfe/Hinweis würde ich mich freuen,
Aruhn
 

André Uhres

Top Contributor
ich bin schon mitterweile fast verzweifelt...Über jede Hilfe/Hinweis würde ich mich freuen
Ein "DocumentFilter" erlaubt uns die vollständige Kontrolle, etwa so:
Java:
...
    private JTextField textField;
...
        ((AbstractDocument) textField.getDocument()).setDocumentFilter(new DocumentTextFilter(15, "\\d"));
...
class DocumentTextFilter extends DocumentFilter {

    private final int maxCharacters;
    private final String regex;

    public DocumentTextFilter(int maxCharacters, String regex) {
        this.maxCharacters = maxCharacters;
        this.regex = regex;
    }

    @Override
    public void insertString(FilterBypass fb, int offs, String str, AttributeSet a)
            throws BadLocationException {
        if (str.matches(regex) && (fb.getDocument().getLength()
                + str.length()) <= maxCharacters) {
            super.insertString(fb, offs, str, a);
        } else {
            Toolkit.getDefaultToolkit().beep();
        }
    }

    @Override
    public void replace(FilterBypass fb, int offs, int length, String str, AttributeSet a)
            throws BadLocationException {
        if (str.matches(regex) && (fb.getDocument().getLength()
                + str.length() - length) <= maxCharacters) {
            super.replace(fb, offs, length, str, a);
        } else {
            Toolkit.getDefaultToolkit().beep();
        }
    }
}
 

Aruhn

Mitglied
Hey danke, funktioniert schon einmal.
Ich hab aber gerade festgestellt wenn man dem JTextField/JFormattedTextField z.B. mit .setText("0333356789") arbeitet, wird der Wert nicht angenommen.
Das selbe Verhalten wenn ich das Feld mit setText("") leeren möchte.

Mit der Länge von replace haut es ja hin, offensichtlich ist Beides mit dem regex \\d nicht vereinbar.

Zusammengefasst, mit der .setText() Methode soll auch gearbeitet werden können. Wie in etwa müsste der else Zweig von replace angegangen werden?
Wie ich mit .setText("") vorgehen müsste ist mir klar. Da würde ich wie folgt arbeiten:
Java:
boolean b = Pattern.matcher("", str) 
if(b) ...
Allerdings mit einer Zeichenkette die mit .setText("0333356789") übergeben wird ist es mir nicht klar. Eigentlich sagt mir da mein Kopf müsste das mit \\d vereinbar sind.
Mir scheint da das er die zu übergebende Zeichenkette als String und somit Text und nicht als Zahlen (Digits) ansieht.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
ReinerCoder Problem mit JFormattedTextField Java Basics - Anfänger-Themen 2
M Nur Zahlen oder ein leeres JFormattedTextField zulassen Java Basics - Anfänger-Themen 7
C JFormattedTextField soll Pflichtfeld sein Java Basics - Anfänger-Themen 19
P JFormattedTextField auslesen Java Basics - Anfänger-Themen 4
T JFormattedTextField ints auslesen Java Basics - Anfänger-Themen 11
E JFormattedTextField Zahl extrahieren - warum Number und nicht Double? Java Basics - Anfänger-Themen 4
A JFormattedTextField + DateFormatter Java Basics - Anfänger-Themen 3
B Kommazahl mit 2 Nachkomma-Stellen im jFormattedTextField Java Basics - Anfänger-Themen 6
M JFormattedTextField nachkommastellen beim verlassen prüfen Java Basics - Anfänger-Themen 11
P JFormattedTextField auf Ausgangszustand zurücksetzen? Java Basics - Anfänger-Themen 4
F Range für new JFormattedTextField möglich? Java Basics - Anfänger-Themen 2
G Textmarke in JFormattedTextField? Java Basics - Anfänger-Themen 2
R JFormattedTextField Zahlenbereich zulassen Java Basics - Anfänger-Themen 4
J JFormattedTextField oder NumberFormat! Java Basics - Anfänger-Themen 12
P JFormattedTextField auf x zeichen beschränken Java Basics - Anfänger-Themen 6
J Anzahl von for-Schleifen in Abhängigkeit von Zahleneingabe erzeugen Java Basics - Anfänger-Themen 1
B Problem mit Zahleneingabe Java Basics - Anfänger-Themen 3
V Zahleneingabe als String in Char umwandeln Java Basics - Anfänger-Themen 4
S ein Java Ganzzahlen Addierer mit Zahleneingabe Java Basics - Anfänger-Themen 13
P Zahleneingabe Java Basics - Anfänger-Themen 2
J Zahleneingabe per Konsole Java Basics - Anfänger-Themen 6
richis-fragen JTable sowohl Spaltennamen wie auch Spaltenbeschriftungen Java Basics - Anfänger-Themen 7
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
J 2 listen vergleichen, die auch null Elemente haben können ! Java Basics - Anfänger-Themen 9
M "Class<T> clazz" im Constructor - auch für int möglich? Java Basics - Anfänger-Themen 7
I Code für Bezahlsystem (auch bei Offline Aktivität) Java Basics - Anfänger-Themen 7
luggas89 If else auch mit unterschiedlichen Antworten Java Basics - Anfänger-Themen 5
berserkerdq2 sqllite in Java, wenn ich mache select count(*) ..., erhalte ich dann nur die gezählte Anzahl oder werden auch die Tabellen ausgegeben? Java Basics - Anfänger-Themen 2
berserkerdq2 Findet eine parallele Verarbeitung in Java bei Threads erst statt, wenn man die Methoden auch synchronized? Und wie sieht bei Conditions aus? Java Basics - Anfänger-Themen 8
L Anpassung der Spaltenbreite auch auf eine zweite Tabelle anwenden Java Basics - Anfänger-Themen 8
JordenJost Java ist auch eine Insel für Anfänger Java Basics - Anfänger-Themen 2
W Methoden aufrufen - auch klassenübergreifend? Java Basics - Anfänger-Themen 9
I Ausgabe nicht nur senkrecht sondern auch waagerecht. Java Basics - Anfänger-Themen 2
S Methoden - Warum int wenn auch void? Java Basics - Anfänger-Themen 3
G Wofür benötigt man die Umgebungsvariablen sowohl in Windows 10 als auch in Mac OS Catalina Java Basics - Anfänger-Themen 19
C Methoden Java ist auch eine Insel Listing 2.40 Recursion Java Basics - Anfänger-Themen 7
J Projektideen für Java (auch gehobeneres Niveau)? Java Basics - Anfänger-Themen 16
B Button soll sowohl auf Klicken als auch auf die Enter-Taste reagieren Java Basics - Anfänger-Themen 9
D auch negative Zahlen sotieren Java Basics - Anfänger-Themen 18
B Email versand - aber akzeptiert auch falscher Username und Passwort??? Java Basics - Anfänger-Themen 1
U Best Practice Fehleranalyse, welche Fehler macht Ihr beim Lernen bzw. auch später Java Basics - Anfänger-Themen 12
J Die Y Koordinate von einer anderen Klasse auch verändern Java Basics - Anfänger-Themen 1
A Zahlenraten auch in for-Schleife darstellbar? Java Basics - Anfänger-Themen 32
G Klassen Call by Value auch bei Objekten? Java Basics - Anfänger-Themen 2
V Erste Schritte Habe Fragen zu der For und While Schleife als auch Inkrement und Dekrement Java Basics - Anfänger-Themen 4
F Erste Schritte Java ist auch eine Insel kaufen? Java Basics - Anfänger-Themen 2
P Kann ich Java - Programme auch ohne Editor öffnen? Java Basics - Anfänger-Themen 70
D Java doppelte Zahlen auch über 10 in einem String entfernen Java Basics - Anfänger-Themen 2
J Keyboard Event auch ohne Fokus mitbekommen Java Basics - Anfänger-Themen 2
E Brauche eine Antwort zum Thema RegEx ( Alternative zur Lösung auch gesucht ) Java Basics - Anfänger-Themen 5
A Fehlermeldung Unklar, google hilft auch nicht weiter Java Basics - Anfänger-Themen 2
S Java Counter: nur 1 mal hochzählen auch wenn Abfrage mehrmals zutrifft. Java Basics - Anfänger-Themen 1
D Türme von Hanoi in "Java ist auch eine Insel" Java Basics - Anfänger-Themen 4
V wie kann man am einfachsten für ein Element der JavaFX die Umrandung aktiwieren ? auch ohne css ? Java Basics - Anfänger-Themen 4
V kennt jemand empfehlenswerte online tutorials zur Hibernate ? gerne auch englisch. Java Basics - Anfänger-Themen 4
M Ist die Hamcrest Bibliothek auch schon in Junit 4.11 verfügbar? Java Basics - Anfänger-Themen 1
R AES Key 256 Illegal Key Size auch bei Änderung der Policy Java Basics - Anfänger-Themen 3
B Kann man Windowbuilder auch mit Juno (also Eclipse 4.2) nutzen? Java Basics - Anfänger-Themen 1
C String Objekt erstellen auch ohne new() möglich? Java Basics - Anfänger-Themen 5
DaniSahne96 Frage zu Java ist auch eine Insel Java Basics - Anfänger-Themen 12
C Input/Output Primzahlenzerlegung -> könnte man Zahlen auch einlesen? Java Basics - Anfänger-Themen 4
T Bin Anfänger ... das Thema auch ? Java Basics - Anfänger-Themen 10
G JFrame nur ein mal öffnen, auch beim mehrmaligem Betätigen Java Basics - Anfänger-Themen 11
M Swing Klasse auch per Kommandozeile starten? Java Basics - Anfänger-Themen 2
J Geldberechner(aus Java ist auch eine Insel) Java Basics - Anfänger-Themen 6
F Können Klasse auch Werte liefern? Java Basics - Anfänger-Themen 3
J Kann man auch alles in einer Klasse schreiben? Java Basics - Anfänger-Themen 2
G Erste Schritte JAVA ist auch eine Insel Java Basics - Anfänger-Themen 7
T Collections Werte aus einer HashMap auslesen, oder gehts auch einfacher ? Java Basics - Anfänger-Themen 6
D Klassen Programm funktionert - aber auch ökonomisch? Java Basics - Anfänger-Themen 23
S KeyListener aktiv auch wenn minimiert? Java Basics - Anfänger-Themen 4
S Liste aller Partitionen (auch "unmounted") Java Basics - Anfänger-Themen 2
E Programm auch auserhalb von Eclipse nutzen? Java Basics - Anfänger-Themen 3
Hindi93 Java is auch ne Insel CD Java Basics - Anfänger-Themen 8
J Getter und Setter auch intern benutzen - guter Stil? Java Basics - Anfänger-Themen 31
F Generische Typen auch für statische Methoden? Java Basics - Anfänger-Themen 13
D BETAVERT aus Excel auch in Java? Java Basics - Anfänger-Themen 4
K 50 errormeldungen- komme auch nach vielen Nachmittagen nicht weiter. bitte helfen Java Basics - Anfänger-Themen 39
J Instanzvariable auch in erbenden klassen Java Basics - Anfänger-Themen 4
T Frage aus dem Buch JAVA ist auch eine Insel Java Basics - Anfänger-Themen 11
M Kann man Bedingungen auch ohne Schleifen prüfen? Java Basics - Anfänger-Themen 5
D Kann noch fast nichts, funktioniert auch fast nichts! Java Basics - Anfänger-Themen 8
T Sind Kontrollflussanweisungen auch Methoden? Java Basics - Anfänger-Themen 5
P Gibts auch Triple? Java Basics - Anfänger-Themen 9
D runden ohne math! (zur not auch mit) Java Basics - Anfänger-Themen 9
E Einen String auch über die Laufzeit hinaus speichern Java Basics - Anfänger-Themen 4
C Methoden auch für Arrays verfügbar machen Java Basics - Anfänger-Themen 8
S Codebeispiel aus Java ist auch eine Insel. Java Basics - Anfänger-Themen 2
M Eltern-Fenster wird auch geschlossen Java Basics - Anfänger-Themen 6
M Systray Eintrag auch nach Neustart Java Basics - Anfänger-Themen 5
C seo-Webseiten auch mit Java möglich? Java Basics - Anfänger-Themen 8
M gehen applets auch in .jar dateien? Java Basics - Anfänger-Themen 3
L Wie kann ich auch in einem ActionListener ein neues java Pro Java Basics - Anfänger-Themen 8
L Bedingung immer false, auch wenn zwei Strings gleich sind Java Basics - Anfänger-Themen 11
P switch-case Konstrukt auch mit case i < 6: s = 6 ? Java Basics - Anfänger-Themen 10
G Massenersetzungen am besten auch mit replaceAll? Java Basics - Anfänger-Themen 3
C Überprüfen, ob die eingabe auch buchstaben enthält Java Basics - Anfänger-Themen 6
C Kann man class Dateien auch lesen? Java Basics - Anfänger-Themen 8
D flash object mit JS definieren.auch für Java Applet? Java Basics - Anfänger-Themen 13
R getImage auch für File-Objekte? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben