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 :

[swing] faut cliquer 2 fois...


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Avatar de if_zen
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 275
    Par défaut [swing] faut cliquer 2 fois...
    Bonjour,

    Voilà j'ai fait une interface graphique en java, dans les règles du modèle-vue-controleur, bref, ça marche sauf que...
    J'ai un bouton "ouvrir" qui ne fait qu'un test d'une combo et qui fait un system.out.println("bien ou pas bien"). La premiere fois que je clique, rien ne se passe, après, chaque clic fonctionne.
    J'ai un autre bouton "nouveau profil". Alors lui il notifie les fenetres observer et il lance une nouvelle fenetre. La premiere fois que je clique, la 2e fenetre s'affiche, mais la communication observer/observable ne se fait pas, alors que quand je clique une deuxième fois, toutes les actions sont traitées.

    Bref, au premier clic ça nous donne un résultat de moins de 50% des opérations attendues, alors qu'après tout fonctionne, je vois absolument pas d'ou ça peut venir...

    extraits :

    Panneau.java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            cmdNouveau = new JButton("Nouveau profil...");
            cmdNouveau.addActionListener(ctrl);
            add(cmdNouveau);
    Controleur.java :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        public void actionPerformed(ActionEvent arg0) {
    ...
            else if (commande.equals("Nouveau profil..."))
                mod.creer();
        }

    Modele.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
     
        private Controleur ctrl;
        public Modele()
        {
            // creation de la fenetre
            ctrl = new Controleur(this);
            new Vue(ctrl, this);
        }
        ...
        //On a cliqué sur nouveau profil
        public void creer()
        {
            notifyObservers("fermer");
            setChanged();
            mvc_profil.Modele.getModele();
        }
        ...
    Voilà, en espérant que ça vous parle... Merci

  2. #2
    Membre éclairé Avatar de bubu56
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 58
    Par défaut
    ton code ne nous aide pas beaucoup mais je dirais que c'est la variable commande qui n'est pas initialisée correctement dans actionPerformed...

    le plus simple pour toi est de faire un débogage pas à pas ...

  3. #3
    Membre très actif
    Avatar de if_zen
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 275
    Par défaut
    Ah j'ai oublié ptetre trop de lignes...
    command = arg0.actionCommand(); dans le action performed...

    Je vais essayer le debogage vi, c'est le genre de truc bête que je pense même pas à faire... Honte à moi...
    Merci

  4. #4
    Membre très actif
    Avatar de if_zen
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 275
    Par défaut
    Ô temps pour moi...

    J'ai interverti les actions setChanged() et notifyObservers(); dans mon Modele... Donc la premiere fois le notify ne fonctionne pas, puisqu'il n'est pas détecté comme hasChanged()...

    Désolé, et merci :-)

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/01/2008, 14h08
  2. Cliquer plusieurs fois sur Annuler
    Par Spani dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 14/08/2007, 11h06
  3. [MySQL] cliquer 2 fois sur un formulaire
    Par jomannix dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 14/06/2007, 14h28
  4. Réponses: 7
    Dernier message: 28/02/2007, 14h59
  5. [PUBLICATION] Cliquer une fois sur l'animation.
    Par arti2004 dans le forum Intégration
    Réponses: 9
    Dernier message: 19/07/2006, 08h58

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