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

 Java Discussion :

Désactiver un jButton


Sujet :

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 Désactiver un jButton
    Bonjour,

    J'ai 9 ToggleButton, qui sont associer en 3 groupes de 3, et je veux que si l'un des 3 groupes n'as pas été sélectionné, le bouton (que j'appelle ici Generer) ne fonctionne pas.

    Voilà mon code, j'ai créer une fonction pour rendre la méthode du bouton plus claire :

    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
     	public boolean getEtat() {
    		boolean etat = true;
    		if (jToggleButtonA1.isSelected() == true
    				|| jToggleButtonA2.isSelected() == true
    				|| jToggleButtonA3.isSelected() == true
    				&& jToggleButtonB1.isSelected() == true
    				|| jToggleButtonB2.isSelected() == true
    				|| jToggleButtonB3.isSelected() == true
    				&& jToggleButtonC1.isSelected() == true
    				|| jToggleButtonC2.isSelected() == true
    				|| jToggleButtonC3.isSelected() == true) {
    			etat = false;
     
    		}
    		return etat;
    	}
     
    	private JButton getGenerer() {
    		if (Generer == null) {
    			Generer = new JButton();
    			Generer.setPreferredSize(new Dimension(150, 40));
    			Generer.setText("Generate");
    			if (getEtat() == false) {
    				Generer.enable(false);
     
    			}
    Mais cela ne fonctionne pas...

    Si vous avez la moindre idée de comment rectifier mon problème, je vous remercie d'avance !

  2. #2
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par dé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
    public boolean getEtat() {
    		boolean etat = true;
    		if (jToggleButtonA1.isSelected() == true
    				|| jToggleButtonA2.isSelected() == true
    				|| jToggleButtonA3.isSelected() == true
    				&& jToggleButtonB1.isSelected() == true
    				|| jToggleButtonB2.isSelected() == true
    				|| jToggleButtonB3.isSelected() == true
    				&& jToggleButtonC1.isSelected() == true
    				|| jToggleButtonC2.isSelected() == true
    				|| jToggleButtonC3.isSelected() == true) {
    			etat = false;
     
    		}
    		return etat;
    	}
    Juste pour dire que c'est TRÈS MOCHE
    Passons le problème esthétique de la chose...
    Tu as oublié de mettre des parenthèses dans ta condition

    Dernière chose, tu n'est pas obligé de mettre ==true puisse que isSelected te renvoi un boolean, ça dépend des styles après :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public boolean getEtat() {
    		boolean etat = true;
    		if ((jToggleButtonA1.isSelected()|| jToggleButtonA2.isSelected()|| jToggleButtonA3.isSelected())
    				&& (jToggleButtonB1.isSelected()|| jToggleButtonB2.isSelected()|| jToggleButtonB3.isSelected())
    				&& (jToggleButtonC1.isSelected()|| jToggleButtonC2.isSelected()|| jToggleButtonC3.isSelected())) {
    			etat = false;
     
    		}
    		return etat;
    	}
    Et par pitié, pense à stocker tes jToggleButton dans un tableau ou une liste et fais une boucle

  3. #3
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 39
    Par défaut
    Ok merci !

    Que veux-tu dire par faire une boucle ?

    Et quand tu me dis de faire un tableau ou une liste de boutons, tu veux dire faire des groupes de boutons ?

    D'autre part cela ne fonctionne pas, même en mettant les parenthèses...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Décembre 2009
    Messages : 22
    Par défaut
    qui sont associer en 3 groupes de 3,
    veux tu dire par la que tu les as mis dans des buttonsgroup ?

    Dans ce cas tu as juste a verifier que getSelection pour chaque groupe ne retourne pas null.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if ( (group1.getSelection() != null)  && (group2.getSelection() != null)
                                                    && (group2.getSelection() != null)) {
     
             // Si il y a une selection dans chacun des group
    }

  5. #5
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 39
    Par défaut
    Non je ne les ai pas mis dans des groupes, j'aurais peut-être dû d'ailleurs...

    Du coup j'ai fait ça :

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    public ButtonGroup getGroupA () {
    		ButtonGroup groupA = new ButtonGroup();
    		groupA.add(jToggleButtonA1);
    		groupA.add(jToggleButtonA2);
    		groupA.add(jToggleButtonA3);
    		return groupA;
    		}
     
    		public ButtonGroup getGroupB () {
    			ButtonGroup groupB = new ButtonGroup();
    			groupB.add(jToggleButtonB1);
    			groupB.add(jToggleButtonB2);
    			groupB.add(jToggleButtonB3);
    			return groupB;
    			}
     
    		public ButtonGroup getGroupC () {
    			ButtonGroup groupC = new ButtonGroup();
    			groupC.add(jToggleButtonC1);
    			groupC.add(jToggleButtonC2);
    			groupC.add(jToggleButtonC3);
    			return groupC;}
     
     
    	public boolean getEtat() {
    		boolean etat = true;
    		if ( (getGroupA().getSelection() != null)  && (getGroupB().getSelection() != null)
                    && (getGroupC().getSelection() != null))
     
    			{
    etat = false;
     
    		}
    		return etat;
    	}
     
    	private JButton getGenerer() {
    		if (Generer == null) {
    			Generer = new JButton();
    			Generer.setPreferredSize(new Dimension(150, 40));
    			Generer.setText("Generate");
    			if (getEtat() == false) {
    				Generer.enable(false);
     
    			}
    		return Generer;
    	}
    Mais cela ne fonctionne toujours pas...

Discussions similaires

  1. Désactiver un JButton
    Par Atharendil dans le forum AWT/Swing
    Réponses: 12
    Dernier message: 25/03/2013, 21h14
  2. Réponses: 3
    Dernier message: 25/04/2007, 15h25
  3. [JButton] Bouton grisé quand il est désactivé
    Par michaeljeru dans le forum AWT/Swing
    Réponses: 12
    Dernier message: 19/04/2007, 14h53
  4. Désactiver les touches F1, F2, F3, F4, F5 dans IE
    Par ZiZouJH dans le forum Flash
    Réponses: 7
    Dernier message: 17/02/2003, 09h59
  5. Réponses: 8
    Dernier message: 17/05/2002, 09h08

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