JTextField bestimmte Chars verbieten

Hallo,
Entschuldigt bitte, dass ich das Thema nochmal aufnehme.

@Matt297: Ich habe mal deine Idee versucht und geschaut ob diese Funktioniert. Leider hatte ich damit keinen Erfolg.

Hat jemand evtl. noch eine Idee wie man dies realisieren könnte?

Gruß,
swas
 
Hallo,
Danke für den Link. Jetz hab ich es genauso, wie ich es haben wollte.
Die Variante von Matt wird dort auch vorgestellt. Es hat mich verwundert wieso der Code bei dem Beispiel geht und der von Matt nicht. Naja, es war zu simpel.

Java:
JTextField f = new JTextField();
        final ArrayList<Character> forbiddenChars = new ArrayList<Character>(Arrays.asList('g','k',' ')); //Liste mit nicht erlaubten Zeichen
        f.setDocument(new PlainDocument() { //Erzeugt eine neue anonyme Subklasse von PlainDocument(default-implementation von Document) 
            @Override
            public void insertString(int offs, String str, AttributeSet a) //überschreibt die Funktion von PlainDocument
                    throws BadLocationException {
                for (Character c : forbiddenChars) {
                    // Hier war der kleine Fehler versteckt
                    str = str.replace(String.valueOf(c), ""); //Löscht alle nicht erlaubten Zeichen
                }
                super.insertString(offs, str, a); //Ruft die Funktion von PlainDocument auf, die sich dann um das tatsächliche inserten kümmert
            }
        });

Endlich haben wir das gelöst bekommen ;)

Gruß,
swas
 
Oh man, tut mir leid, sowas sollte mir eigentlich nicht mehr passieren ;)
Das ist der Nachteil, wenn man immer zwischen verschiedenen Programmiersprachen herumspringt, wahrscheinlich musste ich da gerade mal wieder was mit PHP machen :)
Schön, dass es jetzt funktioniert.
 
Zurück