JTextfield und Begrenzung der Eingabe

Hi,

ich habe eine Eingabemaske (Swing) für Textfelder und da möchte ich gleich die Eingabemöglichkeiten etwas beschränken, um Anwendungsfehler etwas zu begrenzen, bzw. sie offensichtlicher zu machen.
Meine Ideal-Vorstellung:
Ein Nutzer soll, wenn eine Zahl eingegeben werden soll, nur Ziffern, ‚-‘ sowie ‚,‘ bzw. ‚.‘ als Dezimaltrennzeichen (auch wenn ein Komma eingegeben wird, soll der Punkt angezeigt werden) eingeben können. Genauso möchte ich die Anzahl der Zeichen (z.B. Buchstaben, Ziffern) nach Möglichkeit begrenzen können.

Fehleingaben sollen mit einem „Ping“ oder so quittiert werden.

(Wunschvorstellung meiner Kollegen, da ja die Uraltversion dieser Software das konnte)

Was ist davon realistisch umzusetzen?

Besten Dank für Eure Hilfe

Winni

Was ist davon realistisch umzusetzen?

Ich behaupte jetzt einfach mal: Alles.
Ein Stichwort „KeyListener“.
Fuer den Sound muss man etwas weiter ausholen, aber das sollte
auch gehen (javax.sound).

Gruss, Patrick

Was ist davon realistisch umzusetzen?

Ich behaupte jetzt einfach mal: Alles.
Ein Stichwort „KeyListener“.

Danke für den Tip, aber wie macht man sowas optimal?
für jedes einzelne Eingabefeld ein Konstrukt aus MVC?

Bin da noch sehr frisch auf dem Gebiet.

Fuer den Sound muss man etwas weiter ausholen, aber das sollte
auch gehen (javax.sound).

Auch, um System-Töne zu entlocken?

Gruss, Patrick

Besten Dank und schönes WE…

Danke für den Tip, aber wie macht man sowas optimal?
für jedes einzelne Eingabefeld ein Konstrukt aus MVC?

Ich dachte da eher an eine pragmatische Loesung, quasi
nur einen KeyListener an ein Eingabefeld zu haengen.

Bin da noch sehr frisch auf dem Gebiet.

MVC ist sicher nicht schlecht. Bin da aber auch nicht firm
auf diesem Gebiet. Musst halt ueberlegen, ob MVC fuer
deine Zwecke Sinn macht.

Auch, um System-Töne zu entlocken?

Ein Beispiel habe ich dir mal per eMail geschickt.

Gruss, Patrick

Danke für den Tip, aber wie macht man sowas optimal?
für jedes einzelne Eingabefeld ein Konstrukt aus MVC?

Ich dachte da eher an eine pragmatische Loesung, quasi
nur einen KeyListener an ein Eingabefeld zu haengen.

und der überschreibt das Feld immer wieder oder wie?

Bin da noch sehr frisch auf dem Gebiet.

MVC ist sicher nicht schlecht. Bin da aber auch nicht firm
auf diesem Gebiet. Musst halt ueberlegen, ob MVC fuer
deine Zwecke Sinn macht.

Werde ich überlegen, wie das mit Swing geht, habe ja das Wochenende dafür Zeit…
Habe es schonmal mit Servlets gemacht…

Auch, um System-Töne zu entlocken?

Ein Beispiel habe ich dir mal per eMail geschickt.

THX, werde es mal genauer analysieren und zu gegebenem Zeitpunkt zurückkommen…

Gruss, Patrick

Gruß
Winni

Ich dachte da eher an eine pragmatische Loesung, quasi
nur einen KeyListener an ein Eingabefeld zu haengen.

und der überschreibt das Feld immer wieder oder wie?

Spontan wuerde ich in die keyReleased-Methode sowas wie

if (e.getKeyCode() == KeyEvent.VK\_COMMA) {
 String currentText = txtEingabe.getText();
 txtEingabe.setText(currentText.replace(',', '.'));
} else if (e.getKeyCode() == KeyEvent.VK\_I) {
 // i ist nicht erlaubt
 // playAlarmSound();
 // i abschneiden
} else {
 //standardbehandlung falls gewuenscht
}

schreiben. Ganz pragmatisch eben. :smile:

THX, werde es mal genauer analysieren und zu gegebenem
Zeitpunkt zurückkommen…

Fuer diese Belange ist es definitiv zu langsam. Habe es eben
mal getestet. Aber als Denkanstoss reicht es vielleicht.

Gruss, Patrick