OVH Cloud OVH Cloud

Comportement de JTextField

3 réponses
Avatar
Georges Ko
Bonjour,

J'ai besoin d'un JTextField ayant le comportement suivant:

- Si l'utiliseur efface le contenu (en appyant plusieurs fois sur
Backspace ou Delete, etc. peu importe, l'important est que le
contenu soit ""), celui-ci doit devenir "@". setTexT("") ne doit
pas avoir ce comportement.

Implémenter keyPressed, keyReleased, etc... ne marchent pas puisque le
contenu du champ est celui d'avant ces événements...

Implémenter removeUpdate d'une sous-interface de DocumentListener
qui modifie le contenu, mais c'est très fortement déconseillé...

Est-ce qu'il y a d'autres possibilités ? InputVerifier ?

Georges
--
Georges Ko gko@gko.net 2004-12-06
Si vous n'etes pas dans ma liste blanche, ajoutez [m2gko] dans le sujet de
votre courrier.

3 réponses

Avatar
Sébastien
Georges Ko wrote:

Bonjour,

J'ai besoin d'un JTextField ayant le comportement suivant:

- Si l'utiliseur efface le contenu (en appyant plusieurs fois sur
Backspace ou Delete, etc. peu importe, l'important est que le
contenu soit ""), celui-ci doit devenir "@". setTexT("") ne doit
pas avoir ce comportement.

Implémenter keyPressed, keyReleased, etc... ne marchent pas puisque le
contenu du champ est celui d'avant ces événements...

Implémenter removeUpdate d'une sous-interface de DocumentListener
qui modifie le contenu, mais c'est très fortement déconseillé...

Est-ce qu'il y a d'autres possibilités ? InputVerifier ?


Tu peux implémenter ton propre Document en étendant PlainDocument. Ca devrait te permettre de coder
le comportement que tu décris.

Sébastien

Avatar
Isammoc
Est-ce qu'il y a d'autres possibilités ? InputVerifier ?


Implémenter un modele de document que tu affecteras au JTextField ?

Georges


Isammoc

Avatar
Georges Ko

Est-ce qu'il y a d'autres possibilités ?


Merci pour l'aide, j'obtiens ce que je veux avec une sous-classe de
PlainDocument.

Georges
--
Georges Ko 2004-12-08
Si vous n'etes pas dans ma liste blanche, ajoutez [m2gko] dans le sujet de
votre courrier.