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

Agents de placement/Fenêtres Java Discussion :

AbstractAction et référence croisée


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2011
    Messages : 3
    Par défaut AbstractAction et référence croisée
    Bonjour,

    Je viens vous voir car il me semble que j'ai un problème de conception.
    Je suis tout nouveau dans le monde de Swing ( depuis deux jours) et je rencontre quelques problèmes.

    J'ai une classe qui extend un JFrame. Cette classe comport des boutons comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JButton buttonClear = new JButton(new ClearFilterAction(this, "Clear filter"));

    Je donne la référence de ma fenêtre à l'action pour que l'action puisse modifier ce qu'il faut dans la fenêtre.

    Ma classe "ClearFilterAction" :

    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
     
    @SuppressWarnings("serial")
    public class ClearFilterAction extends AbstractAction {
        private final JFrameVcView fenetre;
     
        public ClearFilterAction(JFrameVcView fenetre, String texte) {
    	super(texte);
    	this.fenetre = fenetre;
        }
     
        @Override
        public void actionPerformed(ActionEvent e) {
    	fenetre.clearFilter();
        }
    }
    Le problème c'est qu'il y a une référence croisé ici et je n'arrive pas à faire autrement.

    Est ce que vous auriez une piste à me donner ?

    Edit :
    Je me suis servis de ce tutorial pour commencer, et la personne qui rédige le tutorial utilise aussi une référence croisée.

    Edit2:
    Je peux mettre le code complet si vous voulez.

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Quel est la problème avec la référence croisée dans ce cas?
    Tu ne pourras pas l'éviter...

  3. #3
    Candidat au Club
    Inscrit en
    Décembre 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2011
    Messages : 3
    Par défaut
    Le problème c'est qu'on m'a dit de l'enlever, car normalement on a pas le droit.
    Je vais essayer de trouver quelque chose de mon côté pour modifier la conception et voir si je trouve quelque chose pour contourner ça.

    Merci de ta réponse.

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Si tu déclare ta classe Action comme une classe interne à ta classe JFrame, l'action devrait avoir accès aux membres de la JFrame.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class JFrame {
     
        private class MonAction {
     
        }
     
    }
    Si tu veux garder ta classe action séparée, tu es obligé d'avoir une référence sur ta JFrame pour effectuer des actions sur celle-ci.

  5. #5
    Candidat au Club
    Inscrit en
    Décembre 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2011
    Messages : 3
    Par défaut
    J'avais pensé à la classe interne, mais je préfère avoir un code séparé entre le graphique et l'opérateur.

    Merci de ta réponse.

    Et pendant que je suis là, le problème des références croisées c'est que le GC ne peut pas faire correctement son travail ?
    J'ai pas trouvé tellement de documentation sur ce sujet, donc si vous pouviez me donner une source d'information cela serait génial.

Discussions similaires

  1. Problème de référence croisée
    Par Nyphel dans le forum C++
    Réponses: 10
    Dernier message: 18/04/2007, 15h23
  2. Réponses: 5
    Dernier message: 21/03/2007, 14h24
  3. [Débutant] Références croisées entre packages
    Par dabeuliou dans le forum Langage
    Réponses: 6
    Dernier message: 05/03/2007, 14h30
  4. effacer des références croisées
    Par jan0 dans le forum Oracle
    Réponses: 3
    Dernier message: 12/10/2006, 12h09
  5. Références croisées d'objets Oracle
    Par cdemedei dans le forum Oracle
    Réponses: 2
    Dernier message: 23/02/2006, 17h33

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