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

Composants Java Discussion :

Sélectionner un Toggle Button à la fois


Sujet :

Composants Java

  1. #1
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 39
    Par défaut Sélectionner un Toggle Button à la fois
    Bonjour,
    Au cours de mon projet, j'ai été amené à utiliser 3 boutons toggle.
    Comment puis-je faire pour qu'on ne puisse activer qu'un seul bouton a la fois. C'est-à-dire qu'un seul bouton sur les 3 puisse rester enfoncé. Quand on clique sur un second celui-ci s'enfonce et les autres se désactivent.

    Merci d'avance pour ceux qui pourront me répondre...

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Il suffit de les ajouter à un ButtonGroup.

  3. #3
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 39
    Par défaut
    C'est ce que j'ai fait, mais cela ne veux pas fonctionner...

    public void ButtonGroup() {
    add(AbstractButton jToggleButton1);
    add(AbstractButton jToggleButton2);
    add(AbstractButton jToggleButton3);
    }
    Eclipse ne connait pas AbstractButton (je dois créer une classe ??), et me dit que le void n'est pas compatible pour les méthodes add...

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    JToggleButton hérite d'AbstractButton. Donc pas besoin de quoi que ce soit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    private JPanel myPane;
    private ButtonGroup buttonGroup;
     
    public void ButtonGroup() {
            myPane.add(AbstractButton jToggleButton1);
            myPane.add(AbstractButton jToggleButton2);
            myPane.add(AbstractButton jToggleButton3);
            buttonGroup.add(AbstractButton jToggleButton1);
            buttonGroup.add(AbstractButton jToggleButton2);
            buttonGroup.add(AbstractButton jToggleButton3);
    }

  5. #5
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 39
    Par défaut
    J'ai mis ce que tu m'as dit, mais il me met toujours que AbstractButton n'a pas pu être résolu... Idem pour ButtonGroup qui n'est pas reconnu comme type valide...

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Oups pardon j'ai gardé ton erreur initiale.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    private JPanel myPane;
    private ButtonGroup buttonGroup;
     
    public void ButtonGroup() {
            myPane.add(jToggleButton1);
            myPane.add(jToggleButton2);
            myPane.add(jToggleButton3);
            buttonGroup.add(jToggleButton1);
            buttonGroup.add(jToggleButton2);
            buttonGroup.add(jToggleButton3);
    }
    Ca devrait marcher amplement mieux.

  7. #7
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 39
    Par défaut
    Merci, ça va déjà mieux, mais ButtonGroup n'est toujours pas reconnu comme type valide...

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Tu as pensé à faire l'import de la classe?

  9. #9
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 39
    Par défaut
    J'ai fait import javax.swing.SwingUtilities

    Mais j'ai l'impression que y a pas buttongroup dedans...
    J'ai essayer en faisant :
    import java.awt.ButtonGroup;
    et import javax.swing.ButtonGroup

    Mais ça ne fonctionne pas...

  10. #10
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 39
    Par défaut
    Non c'est bon j'ai réussi...
    J'ai fait import javax.swing.* ça me semble radical mais bon...

    Par contre le résultat n'est pas là...
    Quand je clique sur l'un, l'autre ne se désactive pas... ?

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Sinon il y a un truc super bien du nom de javadoc dans lequel tu trouveras à quel package se trouve la classe ButtonGroup.


    Tu es bien sur d'avoir appelé la méthode qui les ajoute au ButtonGroup?

    Fais voir le code en question.

  12. #12
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 39
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	private ButtonGroup buttonGroup;
     
    	public void ButtonGroup() {
    		jPanelConfig.add(jToggleButton1);
    		jPanelConfig.add(jToggleButton2);
    		jPanelConfig.add(jToggleButton3);
            buttonGroup.add(jToggleButton1);
            buttonGroup.add(jToggleButton2);
            buttonGroup.add(jToggleButton3);
    Avec jPanelConfig le jPanel contenant mes 3 boutons...


    D'autre part, j'ai suivi le lien que tu m'as donné, et quand je rentre
    import javax.swing.ButtonGroup
    cela ne veut pas fonctionner...

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Avec un fragment de code aussi petit je ne peux pas dire grand chose.
    Appele tu bien la méthode ButtonGroup()?

    Essaie de renommer cette méthode pour plus coller aux conventions de codage java:

    1. On ne donne pas un nom de classe à un nom de méthode
    2. un nom de méthode doit commencer par une minuscule.

    Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void groupButtons()
    fera l'affaire.

  14. #14
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 39
    Par défaut
    Oui pardon...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	public void groupButtons() {
    		jPanelConfiguration.add(jToggleButtonCarte1);
    		jPanelConfiguration.add(jToggleButtonCarte2);
    		jPanelConfiguration.add(jToggleButtonCarte3);
            buttonGroup.add(jToggleButtonCarte1);
            buttonGroup.add(jToggleButtonCarte2);
            buttonGroup.add(jToggleButtonCarte3);
    if (jToggleButtonCarte1.isEnabled()) {
    	jToggleButtonCarte2.disable();
    	jToggleButtonCarte3.disable();
    }
    J'ai testé seulement pour un seul bouton...
    Les 2 disable sont barrés !??

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Pas comme ça qu'il faut faire.
    Enlève tes histoire d'enable/disable et fais juste en sorte de bien appeler ta méthode groupButtons dans le constructeur de ta classe.

  16. #16
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 39
    Par défaut
    Alors en fait j'ai fait complètement différemment, sans les groupes...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    			private JToggleButton getJToggleButton1() {
    public void actionPerformed(java.awt.event.ActionEvent e) {
    if (jToggleButtonCarte1 == null) {
    			jToggleButtonCarte1 = new JToggleButton();
     
    					jToggleButton2.setSelected(false);
    					jToggleButton3.setSelected(false);
    					}
    			});

    Et idem pour les boutons 2 et 3.

    Du coup quand je clique sur l'un, il désactive l'autre sur lequel j'avais cliqué auparavant...

    Par contre, en recliquant sur un bouton enfoncé, je le désenfonce, et du coup il n'y a plus de boutons enfoncés... Et je pense que ça serait mieux si à partir du moment où l'on a cliqué sur un bouton, un des 3 doit être forcément enfoncé...

    Donc je vais chercher un peu pour ça, et je reviens si besoin est... ^^

    En tout cas merci sinok...

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Mouais, enfin je soutiens qu'utiliser un ButtonGroup est la solution adéquate.

    cf http://java.sun.com/docs/books/tutor...ttongroup.html

  18. #18
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 39
    Par défaut
    J'ai fait des groupes...

    Maintenant que puis-je faire pour arriver à ce que je veux (on ne peut sélectionner que l'un des boutons du groupe) ?

Discussions similaires

  1. Sélectionner un Toggle Button à la fois
    Par Sylv3D dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 03/03/2010, 23h11
  2. Réponses: 5
    Dernier message: 19/09/2007, 12h22
  3. toggle button
    Par stgi02 dans le forum MFC
    Réponses: 2
    Dernier message: 22/02/2006, 16h23
  4. [VBA-E] Toggle button: programmation des actions
    Par micknic dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/10/2005, 20h28
  5. Sélectionner un même enregistrement deux fois...
    Par Manu0086 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 02/02/2004, 14h09

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