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

AWT/Swing Java Discussion :

[Debutant][Swing] Problème trés obscur


Sujet :

AWT/Swing Java

  1. #1
    Membre averti Avatar de GyZmoO
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 428
    Points : 301
    Points
    301
    Par défaut [Debutant][Swing] Problème trés obscur
    Bonjour les gens !

    Je suis en train de faire un petit projet en java (un programme de parcours de graphe, en gros on donne un noeud de départ un chemin a suivre et ça doit nous sortir les noeuds d'arrivées.) .

    Mais je me suis dit on va faire une petite interface pour rendre le tout plus joli et éviter de taper dans la console les diverses informations que le programme demande .

    Bref le problème, c'est qu'avec l'interface ça ne marche pas, et sans interface que je code tout en dur dans le main, ça marche .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Parcours p = new Parcours(v1);
     
            v2 = p.rechercher(n1, v1);
     
            System.out.println(v2.isEmpty());
            System.out.println(v2.size());
     
            for (int m = 0; m < v2.size();m++){
     
                System.out.println(v2.elementAt(m).getId());
     
            }
    Ici c'est dans le main, p est donc de type parcours et j'apelle la méthode rechercher avec un noeud de départ (n1) et un vector de string (v1) qui désigne le chemin a suivre.
    Apres j'affiche les noeuds qui correspondent aux arrivées et je trouve ce qu'il faut.

    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
     
    public void actionPerformed(ActionEvent arg0) {
     
            String aux1 = null;
            String aux2 = null;
            Vector<String> aux3 = new Vector<String>();
            Noeud n1 = null;
     
            aux1 = this.instanceGui.noeudSourceTexte.getText();
            aux2 = this.instanceGui.trajetTexte.getText();
            for (int i = 0 ; i < aux2.length(); i ++){
     
                aux3.add(aux2.substring(i,i+1));
     
            }
     
            Parcours p = new Parcours(aux3);
            this.instanceParcours = p;
            n1 = this.instanceGraphe.getNoeud(aux1);
     
            System.out.println(n1.getId());
     
            this.instanceParcours.rechercher(n1, aux3);
            this.instanceGui.resultat.setText("BOUH");
        }
    Ici c'est la méthode ActionPerformed qui est apellé quand je lance la recherche a partir de mon interface, le plus étrange étant que je récupère dans 2 champs de texte le nom du noeud et le trajet, ben je récupère le bon noeud et le bon trajet (j'ai vérifié) mais rien a faire quand je lance la méthode rechercher(Noeud n, Vector<String> trajet) de ma classe Parcours ici, ça me retourne toujours un vecteur résultat vide, alors que quand je le fais dans le main sans interface, ça marche, je suis désespéré, je ne comprend pas

    Je vous met aussi le code de ma méthode rechercher de la classe Parcours même si je doute qu'elle y soit pour quelque chose étant donné que sans interface elle retourne le bon vecteur résultat :

    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
     
    public Vector<Noeud> rechercher(Noeud n, Vector<String> v){
     
     
            Vector<Noeud> v2 = new Vector<Noeud>();
            Vector<Noeud> v3 = new Vector<Noeud>();
            Vector<Noeud> aux = new Vector<Noeud>();
            Vector<Noeud> v4 = new Vector<Noeud>();
            v2 = chercher(n, v.elementAt(0));
     
            // Ici normalement v2 doit déja contenir un noeud aprés apel de 
            // la méthode chercher, mais en passant par l'interface il ne contient
            // rien 
     
     
            System.out.println(v2.isEmpty());
            System.out.println(v2.elementAt(0).getId());
            System.out.println("TAILLE DU CHEMIN : " + v.size());
     
            for (int j = 1; j < v.size()  ; j ++){
     
     
     
                for (int k = 0; k < v2.size(); k ++ ){
     
                    aux = chercher(v2.elementAt(k),v.elementAt(j));
                    v3.addAll(aux);
                    v4 = this.supp(v3); // supp : méthode qui élimine les doublons
     
                }
                v2.removeAllElements();
                v2.addAll(v4);
                v4.removeAllElements();
                aux.removeAllElements();
                v3.removeAllElements();
            }
            return v2;
        }

    Voila désolé si c'est un peu long, mais je suis au bord du crakage total
    Merci .
    define: Programmeur : Celui qui résout un problème que vous n'aviez pas, d'une façon que vous ne comprenez pas.

  2. #2
    Membre averti Avatar de GyZmoO
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 428
    Points : 301
    Points
    301
    Par défaut
    Aprés 3 jours de recherche de bug, je viens de trouver l'erreur : je comparais 2 chaines de caractères en faisant " == " . . . Maintenant que j'ai mis compareTo() a la place, ça marche. . . Y'a des fois . . .
    define: Programmeur : Celui qui résout un problème que vous n'aviez pas, d'une façon que vous ne comprenez pas.

  3. #3
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Pour comparer deux chaines de caractères il faut utiliser la méthode equals()
    cf FAQ : Comment comparer des chaînes de caractères ?
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  4. #4
    Membre averti Avatar de GyZmoO
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 428
    Points : 301
    Points
    301
    Par défaut
    Ok merci pour l'info, mais compareTo(String s) ça marche aussi non?
    define: Programmeur : Celui qui résout un problème que vous n'aviez pas, d'une façon que vous ne comprenez pas.

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Oui, mais il correpond au strcmp du C et donc fait plus que simplement vérifier l'égalité (surement un peu de calcul suppémentaire par rapport au equals())
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  6. #6
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Il est vrai qu'il serait plus juste de dire que la méthode equals sert à vérifier l'égalité tandis que compareTo sert vraiment à comparer
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  7. #7
    Membre averti Avatar de GyZmoO
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 428
    Points : 301
    Points
    301
    Par défaut
    Ok merci je le saurai maintenant
    define: Programmeur : Celui qui résout un problème que vous n'aviez pas, d'une façon que vous ne comprenez pas.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/05/2006, 12h04
  2. Réponses: 3
    Dernier message: 29/08/2005, 15h33
  3. [debutant][swing] pb dans un paintComponent
    Par tambourin dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 03/06/2004, 20h27
  4. [SWING] Problème de rafraichissement
    Par david71 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 24/05/2004, 15h38
  5. [Debutant][Swing][Jtable]Peut-on avoir 2 forecolor ?
    Par britou dans le forum Composants
    Réponses: 7
    Dernier message: 14/05/2004, 15h03

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