cs_eio
Messages postés30Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention18 juin 2011
-
11 juil. 2004 à 21:51
nataS22
Messages postés66Date d'inscriptionjeudi 24 juin 2004StatutMembreDernière intervention28 février 2005
-
13 juil. 2004 à 15:55
Salut
En Java, j'ai un JTextField dont je veux empêcher l'impression de certain caractères dedans. Je suis capable de capturer le code de la touche qui est tapée mais je veux pouvoir modifier ce qui est réellement affiché. Par exemple : si je presse la touche d, je veux que ce soit la lettre x qui s'affiche ou à la limite faire en sorte que la lettre tapée ne s'affiche pas du tout.
nataS22
Messages postés66Date d'inscriptionjeudi 24 juin 2004StatutMembreDernière intervention28 février 2005 13 juil. 2004 à 15:55
J'ai repris le code qui sert à limiter l'affichage des entiers dans un JTextField
et en modifiant queleques truc voici une classe qui te permet d'empécher les caractères de s'afficher :
public class IntegerCaseDocument extends PlainDocument {
/**Méthode appelé lorsqu'on veut insérer un élément dans un JTextField*/
public void insertString ( int offs, String uneString, AttributeSet a ) throws BadLocationException {
if ( uneString == null ) {
return;
}
char[] upper = uneString.toCharArray();
String tempo = "";
for (int i = 0; i < upper.length; i++) {
switch ( upper[i] ){
case '&':
case ' ':
case '~':
case '#':
case '{':
case '}':
case '(':
case ')':
case '[':
case ']':
case '-':
case '|':
case '`':
case '\\':
case '_':
case '^':
case '@':
case '=':
case '+':
case '*':
case '/':
case '£':
case '$':
case '%':
case '§':
case '!':
case ':':
case ';':
case ',':
case '?':
case '<':
case '>': tempo = tempo + "";
break;
default:
tempo = tempo + upper[i];
}
}
super.insertString(offs, tempo, a);
}
};
}
Tu n'as qu'a modifier les caractères dans le switch pour afficher ceux que tu veux et inversement.