Eingabe kontrollieren

Von: , Frage gestellt am Fr, 5. Jan 2007

Hallo!
Wenn ich ein Eingabefeld habe, kann ich ja Eingaben mit einem KeyListener und consume() abfangen.
Aber man könnte ja auch Zeichen in das Feld kopieren (Strg+v), kann man das auch noch irgendwie kontrollieren bzw. abfangen?
Viele Grüße
Manny

5 Antworten zu dieser Frage

  1. Antwort von nach 58 Minuten 0 hilfreich
    Re: Eingabe kontrollieren

    Hallo!
    Aber man könnte ja auch Zeichen in das Feld kopieren (Strg+v),
    kann man das auch noch irgendwie kontrollieren bzw. abfangen?
    Eine erste Idee: pruefen, ob keyEvent.getModifiers() groesser 0 ist
    und dann entsprechend handeln. (shift = 1, ctrl = 2, ctrl+shift = 3 usw.)

    Gruss
    Patrick

    • Antwort von nach 21 Stunden 0 hilfreich
      Re^2: Eingabe kontrollieren

      Hallo, danke für die Antwort.

      Ich bin mir nicht ganz sicher, aber ich meine mal gelsesen zu haben, dass wenn der Benutzer etwas in das Eingabefeld kopiert, man dieses erst als String bekommen kann und dann entscheidet, ob es in dem Textfeld angezeigt werden soll oder nicht.
      So wie ich deine (ihre) Lösung verstanden habe, frage ich erstmal nur ab, ob so Tasten wie strg+v gedrückt worden sind, oder habe ich das falsch verstanden?

      Viele Grüße
      Manny

      • Antwort von nach 21 Stunden 0 hilfreich
        Re^3: Eingabe kontrollieren

        Moin, So wie ich deine (ihre) Lösung verstanden habe, frage ich
        erstmal nur ab, ob so Tasten wie strg+v gedrückt worden sind,
        oder habe ich das falsch verstanden?
        ja, so hatte ich es gemeint. getModifiers() zeigt aber nur an,
        ob eine Taste wie Strg oder Shift gedrueckt wurde. Es reicht
        vielleicht sowas zu machen:

        if (... || (keyEvent.getModifiers() > 0)) {
        consume();
        }
        

        In das Textfeld sollten doch nur Ziffern eingegeben werden(?),
        deshalb macht es ja keinen Sinn eine extra Taste zu druecken
        und man kann das rigoros abfangen. So mein Gedanke.

        Gruss
        Patrick

        • Antwort von nach einem Tag 0 hilfreich
          Re^4: Eingabe kontrollieren

          Cool, danke für die Antwort.
          Allerdings würde diese Lösung doch auch verhindern, dass aus dem Eingabefeld kopiert wird.
          Ich möchte eigentlich auch nicht jegliches einfügen untersagen, sondern eigentlich erstmal den einzufügenen String untersuchen und wenn er keine nichterlaubten Zeichen besitzt ihn auch durchzulassen.
          Kann man das denn auch realisieren?

          Viele Grüße
          Manny

  2. Antwort von nach einem Tag 0 hilfreich
    Re: Eingabe kontrollieren

    Wir reden offensichtlich über SWING.
    Dort enthält jedes Textfeld ein "Document". Du könntest deshalb
    folgenden Code nutzen :

    JTextField text = new JTextField(....);
    text.getDocument().addDocumentListener(new DocumentListener(){
    void changedUpdate(DocumentEvent e ){
    ....
    }
    void insertUpdate( DocumentEvent e ){
    ....
    }
    void removeUpdate( DocumentEvent e ){
    ....
    }
    });

    In den implementerten methoden kannst Du nun deine Überprüfungen
    erledigen und Eingaben evtl. rückgängig machen,

    Hope it helps.....


    Peter [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!