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 :

interaction entre JButtonRadio et JButton


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 32
    Par défaut interaction entre JButtonRadio et JButton
    Bonjour
    j'ai crée deux JButtonRadio (homme et femme) et un seul bouton (description) . l'idée c'est que si je choisis Homme puis je clique sur le bouton description alors une fenetre qui contient les informations concernant les hommes s'affiche. si non (je choisis femme) et je clique sur ce mem bouton alors une fenetre contient les informations de femme s'affiche.
    je fais comme ça mais ça marche pas:
    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
     if ( homme.isSelected()){
    		// on affecte les action aux boutons
    		bouton1.addActionListener(new ActionListener() {
     
    			public void actionPerformed(ActionEvent event) {
    				try {
    					Affichage.affichage();
    				} catch (Exception e) {
     
    				}
    			}
    		});}
            else
            {bouton1.addActionListener(new ActionListener() {
     
    			public void actionPerformed(ActionEvent event) {
    				try {
    					Fichi.affichage();
    				} catch (Exception e) {
     
    				}
    			}
    		});}
    Merci beaucoup pour votre 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
    merci de définir "marche pas"....

  3. #3
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 32
    Par défaut
    Bonjour,
    lorsque je clique sur buttonRadio homme puis sur le bouton description alors la fenêtre concernant l'homme s'affiche. mais lorsque je clique sur (femme) puis sur le bouton description la fenêtre qui s'ouvre concerne l'homme et pas la femme. donc l'exécution ne prend pas en compte le test

    Merci

  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
    D'abord tu es occupé de travailler à l'envers. Tu branche un listener différent suivant la sélection. Mais ce que tu dois faire c'est brancher un unique listener qui, lui, réagit différement en suivant la sélection. En tout cas, c'est en général comme cela qu'on procède, c'est plus facile.

    Ensuite, tu as des catch (Exception e) vide. Met un e.printStackTrace() dedans. Sinon, en cas d'erreur, tu ne saura jamais ce qui se passe.

    Enfin, je suppose que ton bout de code se trouve lui même dans une eventListener qui surveille ta Radio box et est appelé à chaque changement. La méthode 'addActionListener' rajoute un listener, elle ne supprime pas les précédent. Si je vais 4/5 aller retour en cliquant sur homme / femme / homme /femme => tu va avoir autant de listener branchés que d'event, et quand tu cliquera sur le bouton, tu va ouvrir 5 fenêtre homme et 5 fenêtres femme

  5. #5
    Membre éclairé Avatar de nchal
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 512
    Par défaut
    Bonjour,

    En pseudo-code, tu devrais avoir un truc dans ce genre là :

    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
    actionListener(e) {
        if (e.source == descButton)
        {
            if(homme.isSelected)
            {
                affiche.hommeDesc
            }
            else if (femme.isSelected)
            {
                affiche.femmeDesc
            }
            else
            {
                affiche.defaultDesc
            }
        }
    }
    Enfin, c'est ce que je ferais

  6. #6
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 32
    Par défaut
    Bonjour et merci beaucoup vous les deux.
    nchal je ne sais pas comment je peux exploiter cette méthode. a quel niveau je fais l'appel ?
    malheureusement je suis débutante en java (un seul mois). je le mets après la création des boutons mais le (e) est souligné en rouge est l'erreur est comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Multiple markers at this line
    	- Syntax error, insert ";" to complete 
    	 Statement
    	- e cannot be resolved to a variable
    Merci

  7. #7
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 32
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    La méthode 'addActionListener' rajoute un listener, elle ne supprime pas les précédent. Si je vais 4/5 aller retour en cliquant sur homme / femme / homme /femme => tu va avoir autant de listener branchés que d'event, et quand tu cliquera sur le bouton, tu va ouvrir 5 fenêtre homme et 5 fenêtres femme
    Bonjour ,
    répondant a votre commentaire et en se basant sur le pseudo code alors je fais ce code:
    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
    public void actionPerformed(ActionEvent arg0) {
                   if(arg0.getSource() == bouton1)
                   {
                       if(birdButton.isSelected())
                       {
                           try {
                               Affichage.affichage();
                           } catch (Exception e) {
                               // TODO Auto-generated catch block
                               e.printStackTrace();
                           }
                       }
                       else if (catButton.isSelected())
                       {
                           try {
                               Fichi.affichage();
                           } catch (Exception e) {
                               // TODO Auto-generated catch block
                               e.printStackTrace();
                           }
                       }
                       else
                       {
                           try {
                               Affichage1.affichage1();
                           } catch (Exception e) {
                               // TODO Auto-generated catch block
                               e.printStackTrace();
                           }
                       }
                   }
                }
    puisque la méthode addActionnListener ne peux pas être utiliser dans ce cas. comment je peux appeler cette méthode dans la méthode de création des boutons.
    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
    private  JComponent creerBoutons() {
    		Dimension dimension = new Dimension(100,170);
    		JPanel panel = new JPanel(); 
    		panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); // 1 colonne de boutons
    		panel.setLayout(new GridBagLayout());
    		GridBagConstraints gbc = new GridBagConstraints();
    		gbc.gridx = 10;
    		gbc.gridy = GridBagConstraints.RELATIVE;
    		gbc.fill = GridBagConstraints.HORIZONTAL;
    		gbc.insets = new Insets(HGAP,VGAP,20,10); // espacement
     
    		Dimension space = new Dimension(HGAP,VGAP);
    		panel.add(Box.createRigidArea(space)); // permet d'avoir un espacement
    		// pareil pour les autres
    		JButton bouton2 = new JButton("femme");
    		bouton2.setPreferredSize(dimension);
    		panel.add(bouton2, gbc);
     
            panel.add(Box.createRigidArea(space)); // permet d'avoir un espacement
            JButton bouton4 = new JButton("homme");
            bouton4.setPreferredSize(dimension);
            panel.add(bouton4, gbc);
    		return panel;
     
    	}
    Merci

  8. #8
    Membre éclairé Avatar de nchal
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 512
    Par défaut
    Justement, la méthode est appelé comme ça ^^. Tu dois juste déclarer un nouveau action listener sur le bouton et attacher ce listener à la fenêtre. Voici la ligne de code à ajouter.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     button.addActionListener(this);
    Si cela ne te suffit pas, va voir sur le net, il y a, à peu près, 1 milliard de tuto sur le sujet

Discussions similaires

  1. [Language]Interaction entre class
    Par LordBob dans le forum Langage
    Réponses: 10
    Dernier message: 14/12/2005, 10h14
  2. interaction entre mon programme & openOffice
    Par artatum dans le forum C
    Réponses: 4
    Dernier message: 10/10/2005, 22h28
  3. [VB .Net][Forms] Interaction entre deux forms
    Par plasticgoat dans le forum Windows Forms
    Réponses: 7
    Dernier message: 24/08/2005, 13h14
  4. [Collaboration/Interaction] Peut-on schématiser une interaction entre un bouton de commande et un autre objet ?
    Par manel007 dans le forum Autres Diagrammes
    Réponses: 5
    Dernier message: 21/09/2004, 01h01

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