Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JAVA] recuperation de la valeur d'un JRadioButton

    16 avril 2007 à 18:53:00

    bonjour à tous!!

    je suis entrain de me prendre la tete depuis quelques heures sur mes JRadioButton.

    je n'arrive pas à récuperer leur label

    voici mon code :

    <code="java">

    public class ajouter extends JFrame implements ActionListener, ItemListener
    {

    private Button bouton;
    private TextField nom, prix;
    private JPanel panel;
    private JRadioButton box;
    private ButtonGroup group;
    private JLabel lab;
    private JFrame frame;



    public ajouter()
    {
    super();
    panel = new JPanel();
    panel.setLayout(new FlowLayout(FlowLayout.LEFT,4,2));


    nom = new TextField("nom", 10);
    prix = new TextField("prix en €", 10);
    nom.setBackground(Color.yellow);

    panel.add(nom);
    panel.add(prix);



    String pilote = "com.mysql.jdbc.Driver";

    try
    {
    //Chargement de mon pilote
    Class.forName(pilote);
    //Connexion à ma base mysql avec mon login et mot de passe ( à vous de changer cela)
    Connection connexion = DriverManager.getConnection("jdbc:mysql://localhost/creperie","root","yesss");
    //Création de mon statement qui va me permettre d'executer mes requetes
    Statement instruction = connexion.createStatement();
    //Ma table s'appelle creperie et tout ce qui reste dépend d'elle
    //Vous devez changer certaines infos comme le nom de la table et celui des colonnes
    ResultSet resultat = instruction.executeQuery("SELECT DISTINCT type FROM carte");
    JLabel lab = new JLabel("type");
    panel.add(lab);
    while(resultat.next())
    {

    String resul = resultat.getString("type");
    box = new JRadioButton(resul, false);
    group = new ButtonGroup();
    group.add(box);
    box.addItemListener(this);

    panel.add(box);


    }

    }
    catch (Exception e)
    {

    System.out.println("echec pilote : "+e);
    }



    bouton = new Button("ajouter");
    panel.add(bouton);
    bouton.addActionListener(this);


    JFrame frame = new JFrame();
    frame.setContentPane(panel);
    frame.setSize(300,300);
    frame.setVisible(true);


    }

    public void itemStateChanged(ItemEvent evt)
    {

    Object obj = evt.getItem();

    ???
    }

    public void actionPerformed(ActionEvent e)
    {
    if ( (Button) e.getSource() == bouton )
    {
    JOptionPane.showMessageDialog(null,"nom : "+nom.getText()+" "+ "prix : "+prix.getText()+" "+"type :"+obj );

    }
    }

    }
    }

    </code>


    ICI ==> type :"+obj ); j'aimerai faire apparaitre la valeur du bouton radio coché..


    de plus, j'utillise ButtonGroup() afin de ne pouvoir coché qu'un bouton radio, mais au lieu de ça, cela m'en coche plusieurs et il est impossible de les deselectionner


    si quelqu'un pourrait m'aider car là je en sais plus quoi faire ...

    merci !!


    • Partager sur Facebook
    • Partager sur Twitter
      16 avril 2007 à 21:52:41

      tu doit déclarer ton listener de la façon suivante :



      box.addlistener(new ActionListener()
      {
       public void actionPerformed(..)
       {
        // ton code
       }
      });

      • Partager sur Facebook
      • Partager sur Twitter
        16 avril 2007 à 22:03:15

        ca me met pas mal d'erreur
        voici ce que j'ai fait, par rapport à ce que tu m'a donné :

        [code]
        box.addlistener(new ActionListener()
        {
        public void actionPerformed(ActionEvent e)
        {


        if ( (Button) e.getSource() == bouton )
        {



        String nomm = nom.getText();
        String prixx = prix.getText();

        JOptionPane.showMessageDialog(null,"nom : "+nom.getText()+" "+ "prix : "+prix.getText()+" "+"type :"+e.getActionCommand() );


        String pilote = "com.mysql.jdbc.Driver";

        try{
        //Chargement de mon pilote
        Class.forName(pilote);
        //Connexion à ma base mysql avec mon login et mot de passe ( à vous de changer cela)
        Connection connexion = DriverManager.getConnection("jdbc:mysql://localhost/creperie","root","root");
        //Création de mon statement qui va me permettre d'executer mes requetes
        Statement instruction = connexion.createStatement();
        //Ma table s'appelle coffees et tout ce qui reste dépend d'elle
        //Vous devez changer certaines infos comme le nom de la table et celui des colonnes
        int inserer = instruction.executeUpdate("INSERT INTO carte VALUES ('','"+nom.getText()+"','','"+prix.getText()+"')");

        }
        catch (Exception ex)
        {

        System.out.println("echec pilote : "+ex);
        }

        }
        }
        }
        );

        [/code]

        puis les erreurs :

        Exception in thread "AWT-EventQueue-0" java.lang.Error: Problèmes de compilation non résolus :
        Le type ajouter doit implémenter la méthode abstraite héritée ActionListener.actionPerformed(ActionEvent)
        Erreur de syntaxe, insérez "}" pour effectuer ClassBody
        Erreur de syntaxe sur le sème "}", supprimez ce sème
        Erreur de syntaxe sur le sème "}", supprimez ce sème
        La méthode addlistener(new ActionListener(){}) est indéfinie pour le type JRadioButton
        Erreur de syntaxe, insérez "}" pour effectuer MethodBody

        at ajouter.<init>(ajouter.java:13)
        at AcceuilCrepe.actionPerformed(AcceuilCrepe.java:65)
        at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
        at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
        at java.awt.Component.processMouseEvent(Unknown Source)
        at javax.swing.JComponent.processMouseEvent(Unknown Source)
        at java.awt.Component.processEvent(Unknown Source)
        at java.awt.Container.processEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
        Exception in thread "AWT-EventQueue-0" java.lang.Error: Problèmes de compilation non résolus :
        Le type ajouter doit implémenter la méthode abstraite héritée ActionListener.actionPerformed(ActionEvent)
        Erreur de syntaxe, insérez "}" pour effectuer ClassBody
        Erreur de syntaxe sur le sème "}", supprimez ce sème
        Erreur de syntaxe sur le sème "}", supprimez ce sème
        La méthode addlistener(new ActionListener(){}) est indéfinie pour le type JRadioButton
        Erreur de syntaxe, insérez "}" pour effectuer MethodBody

        at ajouter.<init>(ajouter.java:13)
        at AcceuilCrepe.actionPerformed(AcceuilCrepe.java:65)
        at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
        at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
        at java.awt.Component.processMouseEvent(Unknown Source)
        at javax.swing.JComponent.processMouseEvent(Unknown Source)
        at java.awt.Component.processEvent(Unknown Source)
        at java.awt.Container.processEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)


        jvais jamais y arriver...
        • Partager sur Facebook
        • Partager sur Twitter
          16 avril 2007 à 22:14:51

          peut tu mettre les balises de code adéquate ? parce que je n'arrive pas a lire.
          Sinon j'ai fait des modifications tu devrais voir une différence


          import java.awt.Color;
          import java.awt.FlowLayout;
          import java.awt.event.ActionEvent;
          import java.awt.event.ActionListener;
          import java.awt.event.ItemEvent;
          import java.awt.event.ItemListener;
          import java.sql.Connection;
          import java.sql.DriverManager;
          import java.sql.ResultSet;
          import java.sql.Statement;

          import javax.swing.ButtonGroup;
          import javax.swing.JButton;
          import javax.swing.JFrame;
          import javax.swing.JLabel;
          import javax.swing.JOptionPane;
          import javax.swing.JPanel;
          import javax.swing.JRadioButton;
          import javax.swing.JTextField;

          public class ajouter extends JFrame implements ActionListener, ItemListener
          {

                  /**
                   *
                   */

                  private static final long serialVersionUID = 1L;

                  private JButton bouton;

                  private JTextField nom, prix;

                  private JPanel panel;

                  private ButtonGroup group;

                  public ajouter()
                  {
                          super();
                          panel = new JPanel();
                          panel.setLayout(new FlowLayout(FlowLayout.LEFT, 4, 2));

                          nom = new JTextField("nom", 10);
                          prix = new JTextField("prix en €", 10);
                          nom.setBackground(Color.yellow);

                          panel.add(nom);
                          panel.add(prix);

                          String pilote = "com.mysql.jdbc.Driver";

                          try
                          {
                                  // Chargement de mon pilote
                                  Class.forName(pilote);
                                  // Connexion à ma base mysql avec mon login et mot de passe ( à vous
                                  // de changer
                                  // cela)
                                  Connection connexion = DriverManager.getConnection(
                                                  "jdbc:mysql://localhost/creperie", "root", "yesss");
                                  // Création de mon statement qui va me permettre d'executer mes
                                  // requetes
                                  Statement instruction = connexion.createStatement();
                                  // Ma table s'appelle creperie et tout ce qui reste dépend d'elle
                                  // Vous devez changer certaines infos comme le nom de la table et
                                  // celui des
                                  // colonnes
                                  ResultSet resultat = instruction
                                                  .executeQuery("SELECT DISTINCT type FROM carte");
                                  JLabel lab = new JLabel("type");
                                  panel.add(lab);
                                  group = new ButtonGroup();
                                  while (resultat.next())
                                  {

                                          String resul = resultat.getString("type");
                                          JRadioButton box = new JRadioButton(resul, false);
                                          group.add(box);
                                          box.addItemListener(this);

                                          panel.add(box);

                                  }

                          }
                          catch (Exception e)
                          {

                                  System.out.println("echec pilote : " + e);
                          }

                          bouton = new JButton("ajouter");
                          panel.add(bouton);
                          bouton.addActionListener(this);

                          JFrame frame = new JFrame();
                          frame.setContentPane(panel);
                          frame.setSize(300, 300);
                          frame.setVisible(true);

                  }
                 
                  JRadioButton radio ;
                 
                  public void itemStateChanged(ItemEvent evt)
                  {

                          radio = (JRadioButton)evt.getSource();
                         

                  }

                  public void actionPerformed(ActionEvent e)
                  {
                          if ((JButton) e.getSource() == bouton)
                          {
                                  JOptionPane.showMessageDialog(null, "nom : " + nom.getText() + " "
                                                  + "prix : " + prix.getText() + " " + "type :" + radio.getText() );

                          }
                  }

          }
          • Partager sur Facebook
          • Partager sur Twitter
            16 avril 2007 à 23:12:32

            oulalala il manquait vraiment pas grand chose!!! ;)

            en tout cas merci beaucoup!! vraiment...
            • Partager sur Facebook
            • Partager sur Twitter
              17 avril 2007 à 14:40:55

              merci de valider ton sujet ;)
              • Partager sur Facebook
              • Partager sur Twitter

              [JAVA] recuperation de la valeur d'un JRadioButton

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown