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 :

Appeler l'événement manuellement pour les composants SWING


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Décembre 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 9
    Par défaut Appeler l'événement manuellement pour les composants SWING
    Bonjour

    je voulais appeler pour des raisons de test unitaires l'evenement FocusEvent du composant Swing JTextField , j'aurais du créer une autre classe qui extends JtextField et redefinir la méthode du component processFocusEvent ça a marché , Est ce qu'il y a pa un autre moyen pour appeler la méthode processEvent qui est une méthode de la classe Component pour la classe JComponent car l'objet testé est du type JTextField et donc je dois appeler cette méthode ProcessEvent sur ce type d'objet.


    Merci d'avantage


    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
    public class JTextField4Test extends JTextField {
     
     
     
        @Override
        protected void processEvent(AWTEvent e) {
            // TODO Auto-generated method stub
            super.processEvent(e);
        }
     
        @Override
        public boolean postEvent(Event e) {
            // TODO Auto-generated method stub
            return super.postEvent(e);
        }
     
        @Override
        protected void processFocusEvent(FocusEvent e) {
                super.processFocusEvent(e);
     
        }
     
        public void invokeFocusEvent(FocusEvent e){
            processFocusEvent(e);
        }
     
    }
    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
    JTextField4Test jtextfield=new JTextField4Test();
     
            jtextfield.addFocusListener(new FocusListener(){
     
                @Override
                public void focusGained(FocusEvent arg0) {
                    System.out.println("The event of the JTextField is invoked");
     
                }
     
                @Override
                public void focusLost(FocusEvent arg0) {
                    System.out.println("The event of the JTextField is invoked");
     
                }
     
            });
     
            FocusEvent e=new FocusEvent(jtextfield,FocusEvent.FOCUS_GAINED);
            jtextfield.invokeFocusEvent(e);

  2. #2
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    La plupart des composants ont des méthodes fireXXX pour simuler la gestion d'un évènements qu'ils auraient généré (ça sert également aux classes filles ;-)).

    Cependant certaines évènements sont plus liés au système qu'à un composant. C'est le cas du focus qui est géré par le FocusManager.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 9
    Par défaut
    Merci pour votre réponse,

    ce que j'ai trouvé comme méthode fireXXX pour le composant JTextField est fireChangeProperty(String propertyName,boolean oldValue,Boolean newValue) , pourriez vous m'expliquer à quoi cette méthode pourra me servir supposant que je choisis de travailler avec l'événement PropertyChangeListener.


    Merci

  4. #4
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    fireChangeProperty ne servira qu'aux classe filles. Cette méthode est automatiquement appelé lorsqu'une des propriété du composant est modifiée.
    (Se référer aux différents setter)

    De plus, il serait incohérent d'appeler cette méthode si la valeur n'a pas changée.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  5. #5
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Bah, déclencher l'acquisition du focus sur ton composant via un requestFocus...
    Ca ne suffit pas?

  6. #6
    Membre régulier
    Inscrit en
    Décembre 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 9
    Par défaut
    je l'ai essayé mais ça n'a pa déclenché l'événement

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

Discussions similaires

  1. Utiliser les layouts pour bien placer les composants Swing ?
    Par khaled_prg dans le forum Agents de placement/Fenêtres
    Réponses: 14
    Dernier message: 16/04/2013, 17h01
  2. Affichage instable avec les composants SWING
    Par valfajr dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 05/05/2006, 00h04
  3. HELP POUR LES COMPOSANT
    Par Bruxor dans le forum Composants VCL
    Réponses: 8
    Dernier message: 15/12/2005, 19h16
  4. [interbase] Meilleur Dataset pour les composants orientés BD
    Par plante20100 dans le forum Bases de données
    Réponses: 8
    Dernier message: 10/11/2005, 16h09
  5. Créé un nouveau répertoire pour les composant DOS
    Par Furius dans le forum Windows
    Réponses: 11
    Dernier message: 12/10/2005, 17h42

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