textfeld mit 0 bis n ziffern

dermoritz

Bekanntes Mitglied
so, habe nun gestern meine erste java gui geschrieben. eines habe ich aber noch immer nicht rchtig hinbekommen: ein textfeld welches Integerwerte nimmt von 0 bis n stellen. n stellen kriege ich ohne weiteres hin:
Java:
new MaskFormatter("#######")

aber wenn ich in solch ein feld weniger als n (hier n=7) stellen eingebe, verschwinden sie sobald man das fed verlässt. des weiteren hab ich noch mit "setPlaceholderCharacter('0')" herumgespielt. das wäre ein lösung wenn man den textfluss umdrehen könnte - von rechts nach links. als falls man eine '1' eingibt soll im feld "0000001" stehen und nicht "1000000".

an dieser stelle habe ich mich gefragt, obe es eventuell auch eine viel leichtere lösung gibt - eventuell direkt über eine maske?
 

lumo

Top Contributor
willst du damit sicher gehn dass eine gewisse zahl nicht überschritten wird, oder nur dass eine zahl eingegeben wird?
ich sichere sowas mit nem verify-listener

edit: swt oder swing?
 
G

Gast2

Gast
Bei Swing geht sowas so:
Warum benutzt du das MaskFormat für Zahlen würde ich ein NumberFormat nehmen
Java:
	   NumberFormat numberFormat = NumberFormat.getInstance();
	   numberFormat.setParseIntegerOnly(true);
	   numberFormat.setMaximumIntegerDigits(7);
	   numberFormat.setGroupingUsed(false);
	   NumberFormatter numberFormatter = new NumberFormatter(numberFormat);
	   numberFormatter.setAllowsInvalid(false);
	   JFormattedTextField formattedTextField = new JFormattedTextField(numberFormatter);
 

dermoritz

Bekanntes Mitglied
danke!

ich werd das mal probieren sirwayne. inzwischen hab ich aber mal mit jSpinner experimentiert. Dort hab ich aber das Problem, dass ich kein event finde, welches beim Tippen feuert (falls sich der Wert geändert hat). (stateChanged feuert erst meim fokusverlust)

beim textfeld hab ich dafür den dokumentListener verwendet - gibts sowas für Spinner??
 

dermoritz

Bekanntes Mitglied
ich hätte mal eine Frage zu dem NumberFormat: kann ich davon viele verschiedene anlegen? ich bräuchte ja verschiedene Formate für verschiedenen Eingabefelder.
 

dermoritz

Bekanntes Mitglied
nur zum klarstellen:
Java:
NumberFormat numberFormat = NumberFormat.getInstance();
NumberFormat numberFormat1 = NumberFormat.getInstance();
damit hätte ich zwei verschiedene Instanzen?

geht auch sowas:
Java:
NumberFormat numberFormat = NumberFormat.getInstance();
       numberFormat.setParseIntegerOnly(true);
       numberFormat.setMaximumIntegerDigits(7);
       numberFormat.setGroupingUsed(false);
       NumberFormatter numberFormatter = new NumberFormatter(numberFormat);
       numberFormatter.setAllowsInvalid(false);
       JFormattedTextField formattedTextField = new JFormattedTextField(numberFormatter);
numberFormat.setMaximumIntegerDigits(2);
NumberFormatter numberFormatter = new NumberFormatter(numberFormat);
JFormattedTextField formattedTextField = new JFormattedTextField(numberFormatter);
Also brauche ich für jedes Textfeld einen eigenen NumberFormatter und oder NumberFormat oder kann ich diese einfach wiederverwenden? Insgesamt Frage ich mich gerade wann und wie solch eine Wiederverwendung überhaupt zulässig ist - denn theoretisch könnten sich ja alle Textfelder im Verhalten ändern wenn ich numberFormat manipuliere?! - das kommt doch auf die Struktur des numberFormat objekts an?
Lange Rede kurzer Sinn, Danke für die Tips, ich werde mal Experimente machen und mich wieder melden.
 

dermoritz

Bekanntes Mitglied
also das geht schonmal nicht:
Java:
        NumberFormat numberFormat = NumberFormat.getInstance();
        numberFormat.setParseIntegerOnly(true);
        numberFormat.setMaximumIntegerDigits(7);
        numberFormat.setGroupingUsed(false);
        Betriebsnummernformat = new NumberFormatter(numberFormat);
        Betriebsnummernformat.setAllowsInvalid(false);
        numberFormat.setMaximumIntegerDigits(2);
        Seitenzahlformat = new NumberFormatter(numberFormat);
        Seitenzahlformat.setAllowsInvalid(false);
der numberFormatter benutzt also nur Referenzen auf das NumberFormat -> Seitenzahlformat und Betriebsnummernformat sind damit auf 2 Digits beschränkt.
 
G

Gast2

Gast
also das geht schonmal nicht:
Java:
        NumberFormat numberFormat = NumberFormat.getInstance();
        numberFormat.setParseIntegerOnly(true);
        numberFormat.setMaximumIntegerDigits(7);
        numberFormat.setGroupingUsed(false);
        Betriebsnummernformat = new NumberFormatter(numberFormat);
        Betriebsnummernformat.setAllowsInvalid(false);
        numberFormat.setMaximumIntegerDigits(2);
        Seitenzahlformat = new NumberFormatter(numberFormat);
        Seitenzahlformat.setAllowsInvalid(false);
der numberFormatter benutzt also nur Referenzen auf das NumberFormat -> Seitenzahlformat und Betriebsnummernformat sind damit auf 2 Digits beschränkt.

Versteh den Sinn nicht??????:L Des Weitren sind die sourcen im jdk dabei kannst ja mal reinschauen was das Ding alles macht.

Mach dir einfach eine Factory...
 

dermoritz

Bekanntes Mitglied
so nun hab ichs hingekriegt: mit jeweils 1 formatobjekt und einem formatterobjekt pro Textfeld! (geht das einfacher?)
Das nächste Problem ist: es wird natürlich auch kein leerer String mehr akzeptiert! Das heißt mann kann das Feld nicht völlig leeren - das wollen die Benutzer aber falls sie eine neue Zahl eingeben wollen. Bzw. würde ich denen nicht unbedingt die Umgewöhnung zumuten wollen.
 
G

Gast2

Gast
so nun hab ichs hingekriegt: mit jeweils 1 formatobjekt und einem formatterobjekt pro Textfeld! (geht das einfacher?)
Das nächste Problem ist: es wird natürlich auch kein leerer String mehr akzeptiert! Das heißt mann kann das Feld nicht völlig leeren - das wollen die Benutzer aber falls sie eine neue Zahl eingeben wollen. Bzw. würde ich denen nicht unbedingt die Umgewöhnung zumuten wollen.

Musst du die stringtoValue Methode überchreiben und null werte erlauben...
oder invalid modus erlauben dann checkt er erst beim focus wechsel...
musst mal hier forum suchen gibt ein paar beträge dazu...
 

dermoritz

Bekanntes Mitglied
danke, da ich aber Netbeans für die Guientwicklung benutze, ist das anpassen der Guiklassen nicht so leicht bzw. nützt mir dann der tolle Guieditor in Netbeans für diese Klassen nix mehr. Oder kann man eigene Klassen dem Netbeansguieditor hinzufügen?

Ich hab das Problem im Moment durch ein "selectAll()" gelöst. Also falls solch ein Feld Fokus bekommt wird alles selektiert, dadurch muss man nicht erst alles rauslöschen - was ja nicht geht.
(einem jFormattedTextfield ein selectAll beizubringen war auch nicht ohne ;-) -siehe: Bug ID: 4740914 Doing selectAll() in a JFormattedTextField on focusGained event doesn't work)

also nochmal Danke an alle - ich hab sehr viel gelernt bei meinem ersten Java-Gui-Projekt!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Button und Textfeld Darstellung AWT, Swing, JavaFX & SWT 3
B Scene Builder Textfeld Begrenzen AWT, Swing, JavaFX & SWT 3
T JavaFX MultiLine / MultiStyle Textfeld AWT, Swing, JavaFX & SWT 1
izoards Textfeld für Zeit AWT, Swing, JavaFX & SWT 4
E Frage zum Textfeld AWT, Swing, JavaFX & SWT 8
B Ausgaben einer Umrechnung vom Textfeld in ein Label AWT, Swing, JavaFX & SWT 2
Z Swing Wert aus Textfeld auslesen -- null Fehler AWT, Swing, JavaFX & SWT 4
J SWT Textfeld markieren und kopieren AWT, Swing, JavaFX & SWT 0
A Swing nur Zahlen im Spinner(Textfeld) eingeben ! AWT, Swing, JavaFX & SWT 16
L Ein Actionlistener für ein Textfeld, anstatt viele Actionlistener für ein Textfeld AWT, Swing, JavaFX & SWT 7
karlmasutra JavaFX Verzeichnispfad wählen und an Textfeld übergeben AWT, Swing, JavaFX & SWT 2
J Text in ein Textfeld eingeben und speichern AWT, Swing, JavaFX & SWT 27
cool_brivk24 Großes Textfeld AWT, Swing, JavaFX & SWT 8
J Textfeld nicht sichtbar AWT, Swing, JavaFX & SWT 2
P Knopf gedrückt -> Textfeld befüllen AWT, Swing, JavaFX & SWT 9
P Variable einer Eingabe in anderes Textfeld schreiben AWT, Swing, JavaFX & SWT 7
T [Neuling] Textfeld Inhalt überprüfen und falsche Stellen als msg Ausgeben AWT, Swing, JavaFX & SWT 1
V Swing Eingabe aus Textfeld abholen AWT, Swing, JavaFX & SWT 6
K Swing Textfeld verstecken aber benutzen AWT, Swing, JavaFX & SWT 15
J Swing Strings werden nicht in Textfeld geschrieben AWT, Swing, JavaFX & SWT 8
P Anfängerproblem mit Textfeld AWT, Swing, JavaFX & SWT 6
C Textfeld und Label werden nicht angezeigt (Ubuntu) AWT, Swing, JavaFX & SWT 2
F Textfeld Währungszahlen und automatische Aktualisierung AWT, Swing, JavaFX & SWT 14
R AWT AWT Textfeld durch Klick auf Button erstellen? AWT, Swing, JavaFX & SWT 3
D JavaFX Textfeld Eingabe validieren AWT, Swing, JavaFX & SWT 5
W Swing Nicht-Editierbares Textfeld in Panel in ScrollPane AWT, Swing, JavaFX & SWT 9
T SWT Button soll nur sichbar sein,wenn im Textfeld der Focus ist AWT, Swing, JavaFX & SWT 4
A Textfeld.append/.setText ohne Funktion AWT, Swing, JavaFX & SWT 2
G Text im textfeld in einem Editor anzeigen AWT, Swing, JavaFX & SWT 18
A Swing Zwei Klassen mit Textfeld Eingaben vergleichen und Ausgabe erzeugen AWT, Swing, JavaFX & SWT 10
N JavaFX Textfeld nur Zahlen und nur von 5 bis 30 AWT, Swing, JavaFX & SWT 11
D Eigenes Textfeld AWT, Swing, JavaFX & SWT 8
A combobox automatisch in ein textfeld wechseln AWT, Swing, JavaFX & SWT 3
D textfeld string zu float AWT, Swing, JavaFX & SWT 5
C TextFeld in Verbindung zur ComboBox automatisch aktualisieren AWT, Swing, JavaFX & SWT 7
C Swing Button in Textfeld (JFormattedTextField) AWT, Swing, JavaFX & SWT 7
A Textfeld nachträglich einfügen AWT, Swing, JavaFX & SWT 4
D JSlider und Textfeld AWT, Swing, JavaFX & SWT 2
E Textfeld auslesen AWT, Swing, JavaFX & SWT 2
G Swing Formatiertes Textfeld mit Trennzeichen AWT, Swing, JavaFX & SWT 2
T Swing URL übergabe aus einem Textfeld AWT, Swing, JavaFX & SWT 17
L SWT Textfeld AutoCompletion AWT, Swing, JavaFX & SWT 3
SexyPenny90 NumberFormatException Textfeld AWT, Swing, JavaFX & SWT 4
P SWT Toolbar mit nur einer Schaltfläche und einem Textfeld AWT, Swing, JavaFX & SWT 2
C Textfeld automatisch befüllen AWT, Swing, JavaFX & SWT 6
S Swing Textfeld Sonderzeichen Blockiern AWT, Swing, JavaFX & SWT 2
alex_fairytail Swing Textfeld Action wenn geschrieben wird? AWT, Swing, JavaFX & SWT 6
C SWT Textfeld mit festem und variablen Inhalt AWT, Swing, JavaFX & SWT 13
J Textfeld Rotation AWT, Swing, JavaFX & SWT 2
C Live Suche mit TextFeld AWT, Swing, JavaFX & SWT 2
maddin86 Eingabe in Textfeld 1 synchron in Textfeld 2 ausgeben AWT, Swing, JavaFX & SWT 9
R JDateChooser Datumseingabe via TextFeld wird verworfen AWT, Swing, JavaFX & SWT 8
W Daten auf Textfeld in anderer Klasse verwenden AWT, Swing, JavaFX & SWT 4
A aus einem Textfeld in double parsen AWT, Swing, JavaFX & SWT 10
A TextField: Textfeld teilweise editierbar AWT, Swing, JavaFX & SWT 2
1 Textfeld auslesen AWT, Swing, JavaFX & SWT 11
G Swing Komponente gesucht (Textfeld mit Liste) AWT, Swing, JavaFX & SWT 2
C SWT: Mehrere Formatter in einem Textfeld AWT, Swing, JavaFX & SWT 6
D Markierter Text in Textfeld AWT, Swing, JavaFX & SWT 3
L SWT Darstellung des Datums in Textfeld? AWT, Swing, JavaFX & SWT 2
M SWT Breite von Textfeld nur ohne Layout änderbar AWT, Swing, JavaFX & SWT 2
H Ausgabe an Textfeld JTextField AWT, Swing, JavaFX & SWT 3
F In Textfeld Kommazahl anzeigen aber ohne Komma eingeben AWT, Swing, JavaFX & SWT 14
D SWT String aus Textfeld auslesen und in eine Tabelle speichern AWT, Swing, JavaFX & SWT 5
C Button/Textfeld mit Variable verknüpfen AWT, Swing, JavaFX & SWT 4
X Eingabe in Textfeld soll Button aktivieren... AWT, Swing, JavaFX & SWT 12
S SWT Bei Auslösen eines Buttones ein Textfeld generieren AWT, Swing, JavaFX & SWT 2
T SWT String mitten ins Textfeld einfügen + richtige Cursorposition AWT, Swing, JavaFX & SWT 3
N Textfeld füllen sobald es den Fokus verliert AWT, Swing, JavaFX & SWT 2
M SWT Wie Textfeld hinzufügen, nach Auswahl von einem bestimmten Combobox-item? AWT, Swing, JavaFX & SWT 3
M Bilder in einem Textfeld darstellen AWT, Swing, JavaFX & SWT 2
D Objekt (Map) in Textfeld ausgeben AWT, Swing, JavaFX & SWT 10
O Intwerte in Textfeld dastellen AWT, Swing, JavaFX & SWT 4
T Textfeld autmoatisch aktualisieren AWT, Swing, JavaFX & SWT 5
G CellEditor - Kein "Textfeld" AWT, Swing, JavaFX & SWT 6
O [SWT] Autocomplete bei Textfeld in PreferencePage AWT, Swing, JavaFX & SWT 2
G SWT - TextFeld automatisch aktualisieren AWT, Swing, JavaFX & SWT 15
M Prüfen, ob in einem Textfeld/Tabelle eine Eingabe erfolgt is AWT, Swing, JavaFX & SWT 11
F addSelectionListener für ein Textfeld AWT, Swing, JavaFX & SWT 10
K Textfeld wird nur jedes zweite Mal aktualisiert AWT, Swing, JavaFX & SWT 3
V Shortcuts nicht im Textfeld AWT, Swing, JavaFX & SWT 2
A Fokus in ein Textfeld setzen funktioniert nicht AWT, Swing, JavaFX & SWT 3
A Werte in ein Textfeld übernehmen AWT, Swing, JavaFX & SWT 4
A Fehler beim Auslesen aus einem Textfeld AWT, Swing, JavaFX & SWT 2
C Komme nicht an mein textfeld AWT, Swing, JavaFX & SWT 3
B Textfeld, Rollbaken: Eingabe klappt nicht AWT, Swing, JavaFX & SWT 2
P Textfeld einbinden AWT, Swing, JavaFX & SWT 4
P TextFeld Focus entfernen AWT, Swing, JavaFX & SWT 2
7 Zeilenumbruch in Textfeld AWT, Swing, JavaFX & SWT 3
S Textfeld soll auf Änderungen von nutzer und program reagiern AWT, Swing, JavaFX & SWT 3
G Datensätze aus DB in TextFeld ausgeben AWT, Swing, JavaFX & SWT 18
F Wie Oberfläche verbessern? (JButtons, Textfeld verkleinern) AWT, Swing, JavaFX & SWT 5
K Textfeld Programm soll auf Eingabe warten! AWT, Swing, JavaFX & SWT 4
M In Textfeld Textbereiche sperren? AWT, Swing, JavaFX & SWT 2
N SWT Textfeld und Verifylistener AWT, Swing, JavaFX & SWT 11
D Textfeld mit unterschiedlichen Formatierungen AWT, Swing, JavaFX & SWT 3
P SWT: Textfeld an Fenstergröße anpassen AWT, Swing, JavaFX & SWT 3
G Textfeld auslesen und auf der Konsole ausgeben? AWT, Swing, JavaFX & SWT 10
J AWT-Textfeld Aussehen ändern AWT, Swing, JavaFX & SWT 13
T Datum in Textfeld automatisch formatieren AWT, Swing, JavaFX & SWT 8

Ähnliche Java Themen

Neue Themen


Oben