JTextfield und Begrenzung der Eingabe

Von: , Frage gestellt am Do, 6. Mai 2004

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

5 Antworten zu dieser Frage

  1. Antwort von nach einer Stunde 0 hilfreich
    Re: JTextfield und Begrenzung der Eingabe

    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

    • Antwort von nach 21 Stunden 1 hilfreich
      Re^2: JTextfield und Begrenzung der Eingabe

      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....

      • Antwort von nach 22 Stunden 0 hilfreich
        Re^3: JTextfield und Begrenzung der Eingabe

        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

        • Antwort von nach 22 Stunden 0 hilfreich
          Re^4: JTextfield und Begrenzung der Eingabe

          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

          • Antwort von nach 23 Stunden 0 hilfreich
            Re^5: JTextfield und Begrenzung der Eingabe

            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. :-) 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

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!