Forum: PC Hard- und Software Textfelder für positive und negative Zahlen


von Kai S. (kai999)


Lesenswert?

Hallo allesamt,

ich habe eine Anwendung mit mehreren Textfeldern. Nun möchte ich, dass 
man in die Textfelder nur Zahlen eingeben kann. In einige Textfelder 
sollen nur positive und in andere nur negative Zahlen eingetippt werden 
können.

Kann ich das direkt bei der Deklaration von meinem Textfeld mit angeben, 
wenn ich z.B. tf1 = new JTextField( "nur positive Zahlen" ); ?

Wie ist der einfachste Weg, sowas zu programmieren?
Vielen Dank im Voraus!

von Rolf Magnus (Gast)


Lesenswert?

Entweder dem Widget einen QIntValidator zuordnen oder gleich eine 
QSpinBox mit passenden Minimum- und Maximum-Werten nehmen.

von Kai S. (kai999)


Lesenswert?

Ich habe die starke Befürchtung, dass dein Tipp für C++ gilt.

Ich dachte es ist selbsterklärend, dass ich in Java programmiert habe.

von Rolf M. (rmagnus)


Lesenswert?

Kai S. schrieb:
> Ich habe die starke Befürchtung, dass dein Tipp für C++ gilt.

Für C++ mit Qt, da du ja ganz allgemein gefragt hast. War auch mehr als 
Hinweis zu verstehen, dass du vergessen hast, dazuzuschreiben, worin du 
das programmierst.

Kai S. schrieb:
> Ich dachte es ist selbsterklärend, dass ich in Java programmiert habe.

Warum sollte es das sein?

von Transientenbürzel (Gast)


Lesenswert?

Kai S. schrieb:
>> Ich dachte es ist selbsterklärend, dass ich in Java programmiert habe.

Wenn man nach "JTextField" sucht, könnte man darauf kommen; allerdings 
lässt sich natürlich auch in anderen Programmiersprachen eine Klasse mit 
dem entsprechendem Namen schreiben.

Kai S. schrieb:
> Wie ist der einfachste Weg, sowas zu programmieren?

Da fragst du am besten in "PC-Programmierung", würde ich meinen.

von Kai S. (kai999)


Lesenswert?

Naja wegen dem 'J' bei "JTextField" :-)

aber hast Recht, ich habe vergessen es mit anzugeben. Nun da du es 
weißt, weiß du wie es in Java geht?

von Lukas K. (carrotindustries)


Lesenswert?

Kai S. schrieb:
> Ich dachte es ist selbsterklärend, dass ich in Java programmiert habe.

Dass du Swing benutzt hättest du auch dazu schreiben können.
Wie dem auch sei, Textfelder für zahlen müssen nicht sein, dafür nimmt 
man besser Widgets, die darauf spezialisiert sind. Bei Swing nennt sich 
sowas wohl JSpinner. Mit sehr großer Wahrscheinlichkeit kann man da auch 
Minimum und Maximum festlegen. (Ich kenne mich mit Swing jetzt nicht im 
speziellen aus, kenne nur Gtk+)

von S. R. (svenska)


Lesenswert?

Die Eingabemöglichkeiten in Textfeldern zu beschränken ist eine 
üblicherweise saudumme Idee, außerdem funktioniert sie nicht 
zuverlässig. Es gibt immer eine Möglichkeit, da Werte reinzuinjizieren.

Lasse alle Eingaben zu und validiere nachträglich. Pfusche während der 
Eingabe nicht im Feld rum. Führende und abschließende Leerzeichen treten 
oft beim Kopieren-Einfügen auf, die kannst du während der Validierung 
gleich filtern.

Wann rechtzeitig ist, hängt von der Anwendung ab. Das kann ein dezenter 
Hinweis schon während der Eingabe (oder nach Fokusverlust) sein, das 
kann der Klick auf den "OK"-Button sein, oder das kann auch erst später 
vor der Übernahme der Werte passieren.

von Kai S. (kai999)


Lesenswert?

Ich habe absolut keine Ahnung was du meinst.
Gibt es denn keinen, der ein Bsp für mein Problem hat? :-/

von Reginald L. (Firma: HEGRO GmbH) (reggie)


Lesenswert?

Vllt hilft dir das Stichwort regex weiter.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.