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

Interfaces Graphiques en Java Discussion :

LinkedList parfois vide parfois non..bizarre


Sujet :

Interfaces Graphiques en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut LinkedList parfois vide parfois non..bizarre
    Bonjour,

    Dans une classe écouteur, j'ajoute un élément à la liste (linkedList).

    Je fait un "get" à partir de cette classe écouteur, c'est bon, la liste n'est pas vide.

    Mais lorsque je fais un get à partir d'une autre classe, ça me retourne une liste vide, je ne comprends pas pourquoi.

    La liste,les méthdes get et add sont dans une classe à part. Ils sont dans la classe où il y'a le main.

    Plus précisément :

    dans la classe listener, dans la méthode actionPerformed, j'écris directement le code qui me construit un objet. J'ajoute cet objet à la linkedList. Je teste si cet objet a été ajouté et c'est bon, il a bien été ajouté. Cela ne me renvoie pas une liste vide à partir de cette classe. Mais à partir d'une autre classe oui. Je ne comprends pas.

    Merci pour toute aide.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Tu écrit dans une liste différente de celle que tu lit par la suite, c'est pour ça qu'une est pleine et l'autre vide.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Bonjour,

    Citation Envoyé par tchize_ Voir le message
    Tu écrit dans une liste différente de celle que tu lit par la suite, c'est pour ça qu'une est pleine et l'autre vide.
    Merci bien pour la réponse. Lorsque je la lis à partir de la classe où j'ajoute l'élément, ça marche. Mais dès que je change de classe, je ne sais pas comment faire pour lire cette même liste ou j'ai écris.

    En fait, dans ma classe main InterfaceGraphique.java, j'ai :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
       private LinkedList<Automate> ListeAutomate = new LinkedList<Automate>();
        public LinkedList<Automate> getListeAutomate() {
             return ListeAutomate;
        }
        public Boolean addAutomate(Automate a) {
            ListeAutomate.add(a);
            return true;
        }
    Dans ma classe listener Build.java, j'ai :


    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 InterfaceGraphique ihm;
        public Build(InterfaceGraphique ihm) {
            this.ihm = ihm;
        }
     
        public void actionPerformed(ActionEvent e) {
     
    [...]
     
    //Construction de l'objet à ajouter à ma liste
      if (commande.equals("buildMots")) {
                    while (s != null) {
                        if (c.getMot().length() >= 4) {
                            mots.joindre(c.getMot());
                            //a.renumerote()à ajouter si la longueur du mot est >=7
                        }
                        s = c.nextLine();
                    }
                    mots.close();
    //Ajout de cet objet à ma liste
     
     ihm.getListeAutomate().add(mots);
     
    //Récupération de cet objet
     
        Automate dernierElement = (Automate) ihm.getListeAutomate().getLast();
     
    // Ajout de cet objet à l'onglet que je désire créer 
     
      ihm.getOnglets().addTab("Corpus Sciences - Mots",
                            new Onglet(dernierElement));
    Ma classe Onglet a comme champs une classe PanelGauche.java et c'est dans cette classe PanelGauche que je désire récupérer cet élément "dernierElement"

    Je ne sais pas comment faire pour lire la liste dans laquelle j'ai ajouté l'élément à partir de la classe PanelGauche


    Meric beaucoup pour toute aide.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    de la même manière que tu le fais dans Build. Tu passe au constructeur de PanelGauche (dont on a pas le code) l'instance de InterfaceGraphique et tu fais ihm.getListeAutomate()

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    de la même manière que tu le fais dans Build. Tu passe au constructeur de PanelGauche (dont on a pas le code) l'instance de InterfaceGraphique et tu fais ihm.getListeAutomate()
    Oui, justement, c'est ce que je fais et visiblement, je lis dans une autre liste que celle où j'écris.

    Voici quelques bout de code de la classe PanelGauche.java




    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
     
     
     private JLabel lblNbNoeuds = new JLabel("affichage içi du nombre de noeuds de l'automate");
    private JLabel lblNbArcs = new JLabel("Affichage içi du nombre d'arcs de l'automate");
    private InterfaceGraphique ihm = new InterfaceGraphique();
     
     
    public PanelGauche(InterfaceGraphique ig) {
            super();
             ihm=ig;  
     
             System.out.println("taille de la liste d'automates construits lorsque" 
     +"la méthode getListeAutomate est appelée à partir de panelGauche :"
                   + ihm.getListeAutomate().size() + ihm.getListeAutomate());
     
    lblNbNoeuds.setText(ihm.getListeAutomate().getLast().calculeNbNoeuds());
     
     
    lblNbArcs.setText(ihm.getListeAutomate().getLast().calculeNBArc());

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    retire ce private InterfaceGraphique ihm = new InterfaceGraphique(); et remplace par private InterfaceGraphique ihm;


    ensuite montre nous l'appel au constructeur panelgauche qu'on aie le contexte.

Discussions similaires

  1. Subreport renvoie null : parfois oui, parfois non
    Par Grobim dans le forum iReport
    Réponses: 14
    Dernier message: 21/01/2013, 15h57
  2. [AC-2007] Plusieurs cas imbriqués - parfois marche, parfois non
    Par oreoolep dans le forum VBA Access
    Réponses: 5
    Dernier message: 16/10/2011, 07h04
  3. KeyDown event, parfois oui, parfois non
    Par Golzinne dans le forum Silverlight
    Réponses: 13
    Dernier message: 08/10/2011, 09h51
  4. [XL-2003] Astuce pour Sheet parfois vide
    Par Vadorblanc dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/05/2011, 19h02
  5. Report (parfois) vide en format txt (Report 6i)
    Par reppier dans le forum Reports
    Réponses: 1
    Dernier message: 19/02/2010, 14h35

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