Bonjour à tous.
Je suis en train de recréer un composant à la swing ( le problème n'est cependant pas relatif à swing car mon composant est dans sa propre architecture, hors de swing, d'où le forum où je poste ) consistant en un TextField.
Je bloque à un niveau : la gestion des combinaisons de touches relativement aux caractères accentués.
---
Si je veux écrire é, il y a une touche pour ça.
Il me suffit d'appuyer sur é et de le récupérer via KeyEvent.getKeyChar() ...
De même pour d'autres cas comme èéüäöà.
Mon problème se situe au niveau d'autres caractères tels que :
êôâîû ou les majuscules ÀÈÌÒÙ ÂÊÎÔÛ
Les caractère ^ et ` sont repérés comme des caractères et donc directement envoyé via getKeyChar().
Y a-t-il un moyen pour gérer tous les cas présents et afficher les combinaisons simplement ?
Edit :
voici ce que je fais actuellement, sans savoir comment bien combiner les cas :
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 /** * {@inheritDoc} */ public void keyDown(KeyEvent event) { if(!isEditable()) return; switch(event.getKeyCode()){ case VK_ENTER: submit(); break; case VK_UP: case VK_KP_UP: goLast(); break; case VK_DOWN: case VK_KP_DOWN: goNext(); break; case VK_RIGHT: case VK_KP_RIGHT: goRight(); break; case VK_LEFT: case VK_KP_LEFT: goLeft(); break; case VK_BACK_SPACE: erase(); break; default: char c = event.getKeyChar(); // traitement des accents switch(c){ case '^': case '`': case '´': case '~': case '¨': if(memoryChar == null) memoryChar = new Character(c); else{ addChar(memoryChar.charValue()); addChar(c); memoryChar = null; } return; } if(c != CHAR_UNDEFINED && !event.isActionKey()){ if(memoryChar == null) addChar(c); else{ memoryChar = null; return; // il faudrait faire une combinaison du caractère } } } } /** * Caractère accentué en mémoire */ private Character memoryChar = null;
La partie default : du switch traite des caractères entrés.
Ce qu'il manque, c'est de trouver comment faire des combinaisons des accents avec les caractères non-accents.
Partager