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 :
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","root"); //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 ); } } } }
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 !!
Ton code :
As tu un moyen de vérifier si le "resul" change bien de valeur dans la boucle (exécution pas à pas)?
Tant que ton problème de ButtonGroup sera pas résolu tu ne pourra pas retrouver le label du JRadioButton
Ensuite pour récuperer le label (tu as un attribut pour le label) et tu deras certainement passer par ton ButtonGroup pour accesder ensuite au label du JRadioButton selectionner.