Evenement RadioButton

Evenement RadioButton - Java - Programmation

Marsh Posté le 22-05-2005 à 18:22:34    

Bonjour à tous,
 
Ce code :  

Code :
  1. ButtonGroup groupe = new ButtonGroup();
  2. Rbouton1 = new JRadioButton("Equiprobable", true);
  3. Rbouton1.addActionListener(this);
  4. groupe.add(Rbouton1);
  5.    
  6. Rbouton2 = new JRadioButton("Casinogagnant" );
  7. Rbouton2.addActionListener(this);
  8. groupe.add(Rbouton2);


 
me permet d'ajouter deux boutons radio.
 
Le problème est que dans actionPerformed je n'arrive pas à capturer l'évenement !
 
Mon code :  

Code :
  1. public void actionPerformed(ActionEvent e) {
  2. if (e.getSource () == Rbouton1) {
  3. /* tt mon code */
  4.         } else if (e.getSource () == Rbouton2) {
  5. /* tt mon code */
  6.         }


 
 
Que faire ? Merci d'avance !

Reply

Marsh Posté le 22-05-2005 à 18:22:34   

Reply

Marsh Posté le 22-05-2005 à 19:01:05    

up

Reply

Marsh Posté le 23-05-2005 à 07:38:14    

up

Reply

Marsh Posté le 23-05-2005 à 09:54:11    

Le problème n'est apparemment pas dans le code que tu présentes.
 
Ceci fonctionne :
 

Code :
  1. package swingdemo;
  2. import javax.swing.*;
  3. import java.awt.*;
  4. import java.awt.event.ActionListener;
  5. import java.awt.event.ActionEvent;
  6. public class RadioButtonDemo extends JFrame implements ActionListener {
  7.     private JRadioButton radioButton1, radioButton2;
  8.     public RadioButtonDemo() {
  9.         radioButton1 = new JRadioButton("Radio Button 1" );
  10.         radioButton1.addActionListener(this);
  11.         radioButton2 = new JRadioButton("Radio Button 2" );
  12.         radioButton2.addActionListener(this);
  13.         ButtonGroup group = new ButtonGroup();
  14.         group.add(radioButton1);
  15.         group.add(radioButton2);
  16.         Container contentPane = getContentPane();
  17.         contentPane.setLayout(new FlowLayout());
  18.         contentPane.add(radioButton1);
  19.         contentPane.add(radioButton2);
  20.     }
  21.     public void actionPerformed(ActionEvent e) {
  22.         Object source = e.getSource();
  23.         if (source == radioButton1) {
  24.             System.out.println("Radio Button 1" );
  25.         } else if (source == radioButton2) {
  26.             System.out.println("Radio Button 2" );
  27.         }
  28.     }
  29.     public static void main(String[] args) {
  30.         JFrame frame = new RadioButtonDemo();
  31.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  32.         frame.pack();
  33.         frame.setVisible(true);
  34.     }
  35. }


Message édité par Cherrytree le 23-05-2005 à 09:55:39

---------------
Le site de ma maman
Reply

Marsh Posté le 23-05-2005 à 18:15:04    

Merci bcp de ta réponse Cherrytree, ton code fonctionne parfaitement mais mon problème n'est pas réglé.
 
En effet mon RadioButton1 est true au démarrage de l'application mais  
#             System.out.println("Radio Button 1" );
 
n'est pas pour autant exécuté !
 
 
Que faire ?

Reply

Marsh Posté le 23-05-2005 à 18:20:10    

Au démarrage de l'application c'est autre chose. Si tu reprends ton code, tu remarques que le bouton est sélectionné avec que le listener ne lui soit ajouté.
 
Conclusion, tu dois brancher le listener avant, puis sélectionner.
 

Code :
  1. Rbouton1 = new JRadioButton("Equiprobable" );
  2. Rbouton1.addActionListener(this);
  3. ...
  4. Rbouton1.setSelected(true);


 
Je n'ai pas testé, mais je pense que c'est la solution.


Message édité par Cherrytree le 23-05-2005 à 18:20:40

---------------
Le site de ma maman
Reply

Marsh Posté le 23-05-2005 à 18:36:23    

je me suis arrangé ac des boolean, merci bcp de ton aide Cherrytree !
 
Si une a une petite idée pr mon probleme de Roulette en java : http://forum.hardware.fr/hardwaref [...] 0585-1.htm
 
je suis prenneur ! :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed