J aurais voulu savoir une chose :
comment récupérer la valeur d'un bouton radio ( j ai un groupe de deux boutons et je voudrais savoir lequel est coché).
Voilà pour l instant mon code source :
/**
* ----------------------------------------
* Classe du panel contenant les papramètres
* ----------------------------------------
*/
class PanelParam extends JPanel implements PropertyChangeListener
{
public JRadioButton radioRepas, radioEffort;
public JFormattedTextField zoneGlucoseRepas, zoneGlucoseEffort, zoneTempsRepas, zoneTempsEffort;
private NumberFormat formatGlucoseRepas;
private NumberFormat formatGlucoseEffort;
private NumberFormat formatTempsRepas;
private NumberFormat formatTempsEffort;
/**
* Constructeur
*/
PanelParam()
{
setLayout(new BoxLayout(this,BoxLayout.X_AXIS));
setLayout(new BoxLayout(this,BoxLayout.X_AXIS));
ButtonGroup groupeEvenements = new ButtonGroup();
radioRepas = new JRadioButton("Repas",false);
zoneGlucoseRepas = new JFormattedTextField(formatGlucoseRepas);
zoneGlucoseRepas.setValue(new Integer(0));
zoneTempsRepas = new JFormattedTextField(formatTempsRepas);
zoneTempsRepas.setValue(new Integer(0));
JPanel panelRepas = new JPanel();
panelRepas.setLayout(new BoxLayout(panelRepas,BoxLayout.Y_AXIS));
panelRepas.add(radioRepas);
panelRepas.add(zoneGlucoseRepas);
panelRepas.add(zoneTempsRepas);
add(panelRepas);
groupeEvenements.add(radioRepas);
radioEffort = new JRadioButton("Effort",false);
zoneGlucoseEffort = new JFormattedTextField(formatGlucoseEffort);
zoneGlucoseEffort.setValue(new Integer(0));
zoneTempsEffort = new JFormattedTextField(formatTempsEffort);
zoneTempsEffort.setValue(new Integer(0));
JPanel panelEffort = new JPanel();
panelEffort.setLayout(new BoxLayout(panelEffort,BoxLayout.Y_AXIS));
panelEffort.add(radioEffort);
panelEffort.add(zoneGlucoseEffort);
panelEffort.add(zoneTempsEffort);
add(panelEffort);
groupeEvenements.add(radioEffort);
zoneGlucoseRepas.addPropertyChangeListener("value",this);
zoneTempsRepas.addPropertyChangeListener("value",this);
zoneGlucoseEffort.addPropertyChangeListener("value",this);
zoneTempsEffort.addPropertyChangeListener("value",this);
}
public void propertyChange(PropertyChangeEvent e) {
Object source = e.getSource();
int valeurRepas;
int valeurEffort;
int tempsRepas;
int tempsEffort;
if (source == zoneGlucoseRepas) {
valeurRepas = ((Number)zoneGlucoseRepas.getValue()).intValue();
tempsRepas = ((Number)zoneTempsRepas.getValue()).intValue();
}
else
if (source == zoneGlucoseEffort)
valeurEffort = ((Number)zoneGlucoseRepas.getValue()).intValue();
tempsEffort = ((Number)zoneTempsRepas.getValue()).intValue();
}
}
/**
* -------------------------------------
* Classe du panel contenant les boutons
* -------------------------------------
*/
class PanelBoutons extends JPanel implements ActionListener
{
JButton boutonAjouter, boutonReset;
DialogConfig dialogConfig;
PanelParam panelP;
public double [][] matriceGenerale;
public double [][] matriceParam;
public int j = 0;
/**
* Constructeur
*/
PanelBoutons()
{
matriceGenerale = new double [3][100];
matriceParam = new double [2][100];
...
// On ajoute aux boutons un nom d'action et le listener associé au panel
boutonReset.setActionCommand("boutonReset");
boutonReset.addActionListener(this);
boutonAjouter.setActionCommand("boutonAjouter");
boutonAjouter.addActionListener(this);
...
}
/**
* Méthode appelée (grâce au listener) lorsqu'un des boutons est cliqué
*/
public void actionPerformed(ActionEvent e)
{
if ( e.getActionCommand().equals("boutonReset") )
{
// La fonction de ce bouton est de remettre à zéro l'état des paramètres
panelP.zoneTempsRepas.setValue(new Integer (0));
panelP.zoneTempsEffort.setValue(new Integer (0));
panelP.zoneGlucoseRepas.setValue(new Integer (0));
panelP.zoneGlucoseEffort.setValue(new Integer (0));
}
if ( e.getActionCommand().equals("boutonAjouter"))
{
if (panelP.radioEffort = false) {
matriceParam[0][j] = ((Number)panelP.zoneTempsRepas.getValue()).doubleValue();
matriceParam[1][j] = ((Number)panelP.zoneGlucoseRepas.getValue()).doubleValue();
}
else {
matriceParam[0][j] = ((Number)panelP.zoneTempsEffort.getValue()).doubleValue();
matriceParam[1][j] = ((Number)panelP.zoneGlucoseEffort.getValue()).doubleValue();
}
j = j+1;
}
}
}