Bonsoir !

J'aimerais traiter en direct les caractères rentrés par un utilisateur dans un JTextField. Après pas mal d'effort, j'arrive seulement à avoir la structure de mon action :

Code : 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
 
private CaretListener actionParDefaut()
	{
		return new CaretListener()
		{
			public void caretUpdate(CaretEvent e) 
			{
				try 
				{
					int testValue = Integer.valueOf(tfNumTren.getText()).intValue();
 
					if (testValue == 2){
						tfNumTren.setForeground(Color.blue);
 
					else 
					{
						tfNumTren.setForeground(Color.red);
					}
				} 
				catch (Exception ex) 
				{
					if (ex instanceof NumberFormatException) 
					{
						tfNumTren.setForeground(Color.red);
					}
 
				}
 
				tfNumTren.repaint();
			}
		};
	}

J'ai plus ou moins repris ce code des créations de Toedter. J'arrive donc à changer en direct la couleur de mon JtextField.

Je voudrais maintenant bloquer la saisie de caractères autres que des chiffres, mais également récupérer la valeur de ce JTextField sans avoir à appuyer sur la touche "entrée".

Je pense que mon problème est que je ne comprends pas très bien l'usage du catch exception ici....


Merci pour votre aide


Pierro