Précédent   Forum du club des développeurs et IT Pro > Java > Interfaces Graphiques en Java > AWT/SWING > Composants > Textuels
Textuels JTextField, JTextArea, JTextPane, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 16/10/2012, 16h40   #1
Valère
Membre Expert
 
Avatar de Valère
 
Inscription : août 2005
Messages : 1 334
Détails du profil
Informations personnelles :
Âge : 38
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : août 2005
Messages : 1 334
Points : 2 128
Points : 2 128
Par défaut Filtrer et formater à la volée un nombre Hexadecimal

Bonjour,

Je cherche à reproduire en java le comportement de la calculatrice Windows pour les nombres hexadécimaux: filtrage à la volée des caractères qui ne sont pas hexa, et formatage à la volée (regroupement des chiffres par 4).

En utilisant un JTextField pour lequel j'override le PlainDocument, j'ai la première partie de mon objectif: je rejette les caractères indésirables (j'en profite pour mettre les lettres a-f en majuscules).

Code java :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
        jFormattedTextField1 = new javax.swing.JFormattedTextField();
        jTextField1.setDocument(new HexDocument());
 
        (...)
class HexDocument extends PlainDocument {
 
        @Override
        public void insertString(int offs, String str, AttributeSet a)
                throws BadLocationException {
        // my code here
        }
 
 
    }

Par contre, je ne maitrise pas le formatage de mon texte. L'objet str en argument de insertString ci dessus ne comporte que le dernier caractère saisi (ou bien le presse papier si j'ai fait un copier coller), je ne parviens pas à avoir accès à la valeur complète du champ pour la mettre en forme.


L'autre solution est d'utiliser un JFormatedTextField, pour lequel j'ai fabriqué mon petit FormatterFactory. Là, j'ai bien accès à la valeur complète du champ, mais le traitement n'a lieu que lorsque le JFormatedTextField perd le focus... et non pas à la volée...

Avez vous une idée pour mêler les avantages des deux composants?

Merci d'avance,

Valère
__________________
Pensez au bouton
Je ne répond pas aux questions techniques par email ou MP.
Valère est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h30.


 
 
 
 
Partenaires

Hébergement Web