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 :

la bonne méthode pour afficher des fenetres à partir d'une fenetre principale


Sujet :

AWT/Swing Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Points : 134
    Points
    134
    Par défaut la bonne méthode pour afficher des fenetres à partir d'une fenetre principale
    Bonjour,
    Je viens encore profiter de ce formidable site et de ses contributeurs.
    J'ai une fenetre principale, à partir de laquelle je clique sur des JMenuitem
    qui me permettent d'ouvrir d'autres fenetres.
    Voilà comment je fais :
    Sur les Jmenuitem j'ai des événements qui crée un objet des fenetres secondaires.Voici le code de ActionPerformed si ce n'est pas clair :
    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
     
    private void AvanceeActionPerformed(java.awt.event.ActionEvent evt) {                                        
            // TODO add your handling code here:
            JMenuItem monItem = (JMenuItem)evt.getSource() ;
              if (item == monItem)
            {
                System.out.println("Vous avez cliqué sur item") ;
                essai2 = new AfficheChoix2() ;
                essai2.setVisible(true) ;
            } 
     
            if ( Avancee == monItem )
            {
                System.out.println("Vous avez cliqué sur Avancée ") ;
                 essai = new AjouterLic() ;
                 essai.setVisible(true);
     
            }
     
        }
    Première question : est ce la bonne méthode pour créer des fenetres secondaires.
    Deuxième question : quelq'un peut il m'expliquer pourquoi mon JMenuitem item
    ne donne rien tandis que Avancee me donne bien l'affichage.
    En vous remerciant d'avance .
    Merci

  2. #2
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Bonjour, pour comparer les item, tu dois utiliser la méthode equals et non ==

  3. #3
    Membre extrêmement actif Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 814
    Points
    814
    Par défaut
    d'accord avec morph41
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (monItem.equals(item))
    est plus correct que :
    Après cela me parait bizarre que seul l'un des deux marche...peux tu poster plus de code (création du Menu notamment )

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 66
    Points : 45
    Points
    45
    Par défaut
    Comme il compare l'objet, il peut utiliser == puisqu'il va comparer la référence et non ce qu'il contient. De plus, c'est mieux dans ce cas ci je pense car ça ne sert à rien de vérifier ce que contient l'objet.

    Pour ouvrir des fenêtres secondaire, j'ai tendance à utiliser des JOptionPane au lieu des JFrame. Mais bon, c'est un détail. Ca ne résoud pas vraiment ton problème ^^

    Sinon, au lieu d'avoir toutes tes actions dans la même méthode, tu peux les séparer.
    En gros, au lieu de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    item.addActionListener(this);
    Tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    item.addActionListener(new ActionListener() {
    	public void actionPerformed(ActionEvent e) {
    		//mon code
    	}
    });
    Ca sera beaucoup plus lisible si jamais tu as beaucoup d'actionListener à mettre.

    //edit : Je pense avoir trouver l'erreur, pourquoi la méthode s'appelle AvanceeActionPerformed ? Cela devrait être actionPerformed tout simplement.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Points : 134
    Points
    134
    Par défaut
    Bonjour ,
    Effectivement le problème venait de là . Mon code est généré par netbeans donc il m'a généré automatiquement
    cette fonction mais je vais refaire comme tu dis un item.addActionListener(classe interne) j'ai vu mon erreur et j'essaierai de poster
    un code plus propre.
    Vous pensez donc qu'il est préférable d'utiliser des JOptionPane plûtot que des JFrame qui corespondrait plus à des fenetres principales.

    Je vous poste un code plus propre d'ici demain pour que vous puissiez me donner un avis.

    Merci

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Points : 134
    Points
    134
    Par défaut
    Bonjour ,
    Je devais poster un code propre , mais pour un souci de clarté je préfère
    fermer ce post, et en ouvrir un autre.
    Merci à tous ceux qui m'ont aidé à résoudre mon problème.

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

Discussions similaires

  1. [WD20] Le choix de la bonne méthode pour filtrer des données
    Par lololebricoleur dans le forum WinDev
    Réponses: 3
    Dernier message: 20/02/2015, 22h04
  2. Réponses: 2
    Dernier message: 03/07/2012, 17h54
  3. Réponses: 15
    Dernier message: 27/11/2010, 22h42
  4. La bonne méthode pour faire des timers
    Par Tigrounette dans le forum Général Java
    Réponses: 10
    Dernier message: 19/07/2008, 23h35
  5. [FLASH 8] Afficher des images à partir d'une base de données
    Par developpeur_mehdi dans le forum Flash
    Réponses: 9
    Dernier message: 15/03/2006, 11h43

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