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 :

Problème de listener dans 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
    Février 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Par défaut Problème de listener dans un JFormattedTextField
    Bonjour à tous,

    Voici en quelques mots mon petit souci. J'utilise un JFormattedTextField avec un DecimalFormat. Sur le FormattedTextField, je désire capter les événements du type Document. Donc j'ai déclaré un DocumentListener.

    Mon problème est que lorsque le JFormattedTextField gagne le focus (par le clavier avec la touche TAB, ou par la souris), un événement removeUpdate suivi d'un insertUpdate sont déclenchés. Comment éviter de déclencher, ou de filtrer, ces deux événements indésirables (puisque l'utilisateur n'a à ce moment là encore rien effacé, ou inséré).

    Voici un code test:
    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
    public class MultipleSelectionNumber_simple {
     
      // [... code exécutable ...]
     
      /**
       * Tester class...
       */
      public static class Tester implements DocumentListener {
     
        public void init() {
          JFrame frame = new JFrame("Demo - MultipleSelection");
     
          JPanel panel = new JPanel();
          Box b = Box.createVerticalBox();
     
          // Only to prevent the selection of the formattedTextField
          JTextField txtField = new JTextField();
          b.add(txtField);
     
          // Example with a JFormattedTextField
          DecimalFormat numberFormat = new DecimalFormat();
          JFormattedTextField forTxtField = new JFormattedTextField(numberFormat);
          forTxtField.setValue(10);
          forTxtField.getDocument().addDocumentListener(this);
          b.add(forTxtField);
     
          panel.add(b);
     
          frame.add(panel);
          frame.pack();
          frame.show();
        }
     
        public static void main(String[] args) {
          Tester t = new Tester();
          t.init();
        }
     
        public void insertUpdate(DocumentEvent e) {
          System.out.println("insertUpdate");
        }
     
        public void removeUpdate(DocumentEvent e) {
          System.out.println("removeUpdate");
        }
     
        public void changedUpdate(DocumentEvent e) {
          System.out.println("changedUpdate");
        }
      }
    }
    Pour reproduire le problème, il suffit d'exécuter le code, puis de ''focuser'' le deuxième champs. Vous devriez avoir tout de suite un System.out.println("removeUpdate") et suivi d'un System.out.println("insertUpdate").

    A noté que j'utilise la version de la JVM 1.6.0_02

    Merci d'avance de vos propositions

  2. #2
    Membre averti
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Par défaut
    Encore un point... je viens de trouver la description du bug chez Sun.

    Est-ce qu'une personne aurait été confrontée aux mêmes problèmes, et de quelle façon elle a pu contourner ce bug?

    Merci

Discussions similaires

  1. Problème de Listeners dans une page jsf
    Par jurin80 dans le forum JSF
    Réponses: 0
    Dernier message: 04/06/2009, 17h10
  2. Problème de date dans MONTHS_BETWEEN
    Par ghostlord79 dans le forum Oracle
    Réponses: 10
    Dernier message: 07/04/2004, 11h21
  3. problème de police dans un richedit
    Par chtiot dans le forum Composants VCL
    Réponses: 4
    Dernier message: 28/10/2003, 09h48
  4. Réponses: 19
    Dernier message: 27/08/2003, 15h32
  5. problème de guillemets dans une formule shell
    Par dim_italia dans le forum VBA Access
    Réponses: 7
    Dernier message: 18/08/2003, 12h46

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