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

NetBeans Java Discussion :

Togglebutton & getActionCommand


Sujet :

NetBeans Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de stefan73
    Homme Profil pro
    Formateur : OpenOffice.org/LibreOffice
    Inscrit en
    Mai 2003
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Formateur : OpenOffice.org/LibreOffice
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 105
    Par défaut Togglebutton & getActionCommand
    Bonjour,

    Peut-être pouvez-vous m'aider a comprendre pourquoi cela ne fonctionne pas.

    j'ai un jtoggleButton et j'aimerais, quand il est sélectionne cela écrive dans le label oui et le contraire dans le label Non

    mais dans mon code seul le Non s'affiche ?
    j'ai besoin de connaitre (Avec getActionCommand) le texte qui est écrit dans le bouton pour réaliser une action :

    si okay;action1,
    si modifier;action 2

    Ci-dessous mon code exemple
    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
     
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JToggleButton;
     
    /**
     *
     * @author stefan
     */
    public class testbouton extends javax.swing.JFrame implements ActionListener {
     
        private JToggleButton Okay = new JToggleButton("Okay");
        private JToggleButton Modifie = new JToggleButton("Modifier");
        /** Creates new form testbouton */
        public testbouton() {
            initComponents();
            Okay.addActionListener(this);
            Modifie.addActionListener(this);
        }
      private void modifierActionPerformed(java.awt.event.ActionEvent evt) {
         Object source = evt.getSource();
        int okay = 0;
        int Modifie = 1;
     
        if (evt.getSource() == modifier) {
          if (Modifie ==1) {
           modifier.setText("Modifier");
           Non.setText("Non");
           Oui.setText("Non");
          } else if (okay == 0) {
          Oui.setText("Oui");
          Non.setText("Oui");
          }
        }
         /*if (evt.getSource() == modifier) {
          if (okay == 0) {
              modifier.setText("Okay");
               Oui.setText("Oui");
               Non.setText("Oui");
          } else {
              okay = 0;
          }
        }*/
     
        }
    }
    cette exemple vient de ce site en anglais

    Merci de votre aide

  2. #2
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 823
    Par défaut
    Salut,

    T'es sûr que ça compile le bout de code que tu as mis? Vu que c'est une classe JFrame Netbeans trafiquée... Nettoie tout ça tout d'abord, c'est un peu le bazard là...

    Vu que tu es avec Netbeans, pas la peine d'implémenter ActionListener, Netbeans les place automatiquement sur tes boutons.
    Tu peux aussi enlever les lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Okay.addActionListener(this);
            Modifie.addActionListener(this);
    De plus, pas la peine de faire un:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (evt.getSource() == modifier)
    dans la méthode modifierActionPerformed. Celle-ci n'est appelée qu'après action sur le toggleButton, donc pas la peine de vérifier que c'est bien lui qui l'appelle...


    Ensuite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int Modifie = 1;
     
        [...]
     
        if (Modifie ==1) {
           modifier.setText("Modifier");
           Non.setText("Non");
           Oui.setText("Non");
        } else if (okay == 0) { ...
    tu initialises une variable à 1, et ensuite tu testes si elle est égale à 1... il ne faut donc pas s'étonner que la boucle du "non" s'exécute.

    Essaye plutôt quelque chose comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (this.modifier.isSelected()) {
                this.Non.setText("oui");
            } else {
                this.Non.setText("non");
            }
    mais bon, tu adaptes à ce que tu veux faire, parce que je n'ai pas trop compris ce que tu fais avec tous tes labels...

    Par contre, évite les majuscules pour tes noms d'objets, et réserve les pour les noms de classe (conventions du monde Java... histoire de te faire comprendre de tout le monde)

    Et évite aussi d'appeler deux objets différents avec le même nom... là, tu as un JTB Modifie et un int Modifie... surtout qu'ensuite ton toggleButton dans ta JFrame s'appelle modifier... bref, c'est le bazard ton code!

    Citation Envoyé par stefan73 Voir le message
    cette exemple vient de ce site en anglais
    Euh.. oui, non en fait... tu as essayé de t'en inspirer, mais ton code ne ressemble pas trop à celui-ci...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  3. #3
    Membre confirmé Avatar de stefan73
    Homme Profil pro
    Formateur : OpenOffice.org/LibreOffice
    Inscrit en
    Mai 2003
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Formateur : OpenOffice.org/LibreOffice
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 105
    Par défaut
    Merci pour tes explications qui me permette de mieux comprendre le fonctionnement de Netbeans. Si jamais tu as des tutoriels en Français sur Netbeans version 6 ou 7 ?

    Puisque je ne suis pas assez clair. Ce que je veux faire avec mon toogleButton.
    à l'origine sur le bouton est il écrit "Modifier" quand je clique dessus il déverrouille 2 autres boutons qui permettes de naviguer dans mes enregistrements avec next () et prévouis() dans ma table.

    Donc, quand je clique dessus, il s'écrit "Ok" (Pour valider les modifs). Et je veux récupérer le texte du bouton pour réaliser l'update de mes enregistrements dans ma table.

    Le code qui fonctionne pour les boutons de navigation

    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 void jTogModifierActionPerformed(java.awt.event.ActionEvent evt) {                                             
       Object source = evt.getSource();
        jTogModifier.isSelected();
       if (source == jTogModifier){
        jTogModifier.setText("Ok");
        System.out.println(jTogModifier.getAction());
        jBGauche.setEnabled(!jBGauche.isEnabled());
        jBDroite.setEnabled(!jBDroite.isEnabled());
        jBEnvoyer.setEnabled(!jBDroite.isEnabled());
       }
       if (!this.jTogModifier.isSelected()) {
     
             jTogModifier.setText("Modifier");
     
            }
    }
    Je suis pour le moment obliger de faire comme cela pour garder le bon fonctionnement de mes boutons
    Est-ce une bonne idée ?

    voir les captures d'ecrans
    Images attachées Images attachées   

  4. #4
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 823
    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
    17
    18
    19
     
    private void jTogModifierActionPerformed(java.awt.event.ActionEvent evt) {                                             
       Object source = evt.getSource();
        jTogModifier.isSelected();    // ne sert à rien (vu que ça ne fait rien)
       if (source == jTogModifier){  // ne sert à rien dans le cadre de Netbeans (cf mon explication précédente)
        jTogModifier.setText("Ok");   // pourquoi pas... sinon à mettre dans le else du if qui suit
        System.out.println(jTogModifier.getAction());
        jBGauche.setEnabled(!jBGauche.isEnabled());
        jBDroite.setEnabled(!jBDroite.isEnabled());
        jBEnvoyer.setEnabled(!jBDroite.isEnabled());
       }
       if (!this.jTogModifier.isSelected()) {
           
             jTogModifier.setText("Modifier");
    
             // rajouter le code (ou l'appel du code) pour le traitement de la mise à jour ici
    
            } 
    }
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  5. #5
    Membre confirmé Avatar de stefan73
    Homme Profil pro
    Formateur : OpenOffice.org/LibreOffice
    Inscrit en
    Mai 2003
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Formateur : OpenOffice.org/LibreOffice
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 105
    Par défaut
    Merci cela fonctionne comme je voulais

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

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