IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

Pb de mise à jour d'un JFormattedTextField


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juillet 2004
    Messages : 16
    Par défaut Pb de mise à jour d'un JFormattedTextField
    Bonjour à tous,

    Besoin d'un petit coup de main sur un problème de rafraîchissement sur un JFormattedTextField. Je présente rapidement le petit projet :

    Une Applet composée d'un JComboBox avec 2 choix possibles de sélection, un JFormattedTextField, et un JButton.

    Je souhaite paramétrer mon JFormattedTextField de telle sorte qu'il ne puisse comporter que des 0 et des 1, mais avec un nombre total de 10 caractères si le 1er item de ma JComboBox est sélectionné et 14 caractères si c'est le 2ème item qui est sélectionné.

    Voici un extrait de mon code :

    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
    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
    [...]
    public class MyApplet extends Applet implements ActionListener {
     
    	[...]
     
    	private JFormattedTextField tfSign;
     
    	private JButton btGo;
     
    	private JComboBox jcbCode;
     
    	public void init() {
     
    		[...]
     
        tfSign = new JFormattedTextField();
     
    		try {
    			MaskFormatter mf;
    			mf = new MaskFormatter("##########");
    			mf.setValidCharacters("01");
    			mf.install(tfSign);
    		}
    		catch (ParseException e) {e.printStackTrace();}
    		tfSign.setText("0000000000");
     
    		btGo = new JButton("Calculer CRC");
    		btGo.addActionListener(this);
     
    		jcbCode = new JComboBox();
    		jcbCode.addItem("Calculer un CRC pour émission");
    		jcbCode.addItem("Vérifier le signal reçu");
    		jcbCode.addActionListener(this);
     
    		[...]
     
    	}
     
    	[...]
     
    	@Override
    	public void actionPerformed(ActionEvent e) {
     
    		if (e.getSource()==btGo) {
     
    			[...]
     
        }
    		else if (e.getSource()==jcbCode) {
     
    			if (jcbCode.getSelectedIndex()==0)  {
     
    				//Passage à taille 10
    				try {
    					MaskFormatter mf;
    					mf = new MaskFormatter("##########");
    					mf.setValidCharacters("01");
    					mf.install(tfSign);
    				}
    				catch (ParseException ex) {ex.printStackTrace();}
    				tfSign.setText("0000000000");
     
    				btGo.setText("Calculer CRC");
     
    			}
    			else {
     
    				//Passage à taille 14 (10+CRC)
    				try {
    					MaskFormatter mf;
    					mf = new MaskFormatter("##############");
    					mf.setValidCharacters("01");
    					mf.install(tfSign);
    				}
    				catch (ParseException ex) {ex.printStackTrace();}
    				tfSign.setText("00000000000000");
     
    				btGo.setText("Vérifier code");
     
    			}
     
    			this.repaint();
     
    		}
    	}
     
    }
    A l'exécution, si je modifie le selectedItem de la JComboBox, le JFormattedTextField ne change pas de capacité, et n'est même plus saisissable.

    Pourtant, l'Applet semble bien se rafraîchir, puisque le texte du JButton change.

    Quels sont vos avis sur la question?

  2. #2
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juillet 2004
    Messages : 16
    Par défaut
    Petite précision : à l'exécution, si je resélectionne le 1er item du JComboBox, le JFormattedTextField redevient saisissable.

    Pourtant, le paramétrage via le MaskFormatter est quasi identique, si ce n'est justement le nombre de caractères saisissables qui est justement ce que je cherche à faire.

  3. #3
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juillet 2004
    Messages : 16
    Par défaut
    OK. Problème résolu.

    Pour info : en passant par une déclaration de 2 MaskFormatter en attributs et en swicthant ainsi :

    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
     
    else if (e.getSource()==jcbCode) {
     
    			if (jcbCode.getSelectedIndex()==0)  {
     
    				//Passage à taille 10
    				mf14.uninstall();
    				mf10.install(tfSign);
    				tfSign.setText("0000000000");
     
    			}
    			else {
     
    				//Passage à taille 14 (10+CRC)
    				mf10.uninstall();
    				mf14.install(tfSign);
    				tfSign.setText("00000000000000");
     
    				btGo.setText("Vérifier code");
     
    			}
     
    		}
    Mon erreur était que je faisais un install() sans avoir fait de uninstall() avant.

    Désolé pour le dérangement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment empêcher la mise à jour d'un contrôle à l'écran ?
    Par JojoLaFripouille dans le forum Composants VCL
    Réponses: 4
    Dernier message: 19/09/2003, 13h52
  2. [mise à jour]Comment procéder sans tout péter...
    Par FFF dans le forum Installation
    Réponses: 3
    Dernier message: 10/09/2003, 09h11
  3. Mise à jour de la version de MySQL
    Par jobstar dans le forum Administration
    Réponses: 8
    Dernier message: 18/08/2003, 11h45
  4. mise à jour de champs time (interbase)
    Par pram dans le forum XMLRAD
    Réponses: 6
    Dernier message: 04/03/2003, 11h25
  5. Réponses: 2
    Dernier message: 12/02/2003, 16h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo