JTextField scaleTextField = new JFormattedTextField(NumberFormat.getInstance());
((NumberFormatter)((JFormattedTextField)scaleTextField).getFormatter()).setAllowsInvalid(false);
scaleTextField.setColumns(4);
scaleTextField.setText("100");
In dieses Textfeld sollen nur Zahlen eingegeben werden, da es den momentan Vergrößerungsfaktor beinhaltet und verändert werden kann. Wie oben geschrieben funktioniert das auch, nur ist jetzt das Problem, das nun Tausenderpunkte angezeigt werden… Das ist aber nicht im Sinne des Erfinders und trotz googelei immer nur wieder auf obiges gestoßen. Wie heißt ein Format, das nur Zahlen zulässt, aber keine Tausendertrennzeichen oä hinzufügt?
Da ich grad das Problem habe… Wenn ich das so einfüge kann man Problemlos nur Zahlen ohne Gruppierung eingeben. Selbst negative Zahlen werden per +/- vom nummernpad automatisch eingefügt (Sehr praktisch), nur… was wenn ich PER PROGRAMM da eine negative Zahl einfügen möchte? setText(-100); als Beispiel geht nicht, kommt nur der Error-Sound von Windows, wie als würde ich fehlangaben im Textfeld vornehmen…
Dazu sind die Zahlen, die ich per Sout ausgebe immer positiv, werden trz mit dem Negativ-Zeichen angezeigt? Aber nur sobald eine negative Zahl reingeschrieben wurde.
Also zusammengefasst:
es steht 0 drin
Es schreibt z.B. 130 rein --> steht drin
Es schreibt jetz z.B. -1 rein --> steht drin
Es schreibt jetz z.B. -2 rein --> WIndows Fehlersound (Als wenn ich z.B: per hand ein ‘a’ oder so eingeben wollen würde)
Es schreibt jetz z.B. 140 rein --> steht -140 drin
Jetz verschwindet das Negativzeichen nie mehr (Wenn ich es per Numpad entferne stehts bei der nächsten Programm-gesteuerten Eingabe mit ner Negativ-Zahl wieder drin und muss es per Hand entfernen.) und will ich ne neue Negativ-Zahl eingeben kommt nur der Errorsound (Also per Programm alles, per Hand funktioniert alles problemlos).
Also die Anzeige will nich wie ich will, Google findet leider auch nur wenig. Werd noch weitersuchen, aber evtl hat ja wer ne Lösung für dieses Komische Phänomen…
Ich würde sagen, dieses Verhalten ist recht ungewöhnlich. Etwas mehr Code, speziell über die Zeilen in welchen die Felder manipuliert werden, wäre gut.
Ich hätte für dieses Problem aber ein neues Thema eröffnet, weil dieses hier bereits auf gelöst steht.