1

Voilà j ai un projet à faire sur la régulation de la glycémie, ça fait 5 semaines que je fais du java (à raison de 1h30 de TD et de 3h de TP par semaine) et j ai du mal à m en sortir.

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;
   }
  }
}

2

Ton code source est un peu long. Tu peux utiliser un ButtonGroup pour grouper tes JRadioButton et ainsi savoir lequel est sélectionné en utilisant la méthode getSelection.

Sinon, tu peux lire ça : http://java.sun.com/docs/books/tutorial/uiswing/components/button.html#radiobutton
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

3

Merci. Je vais éditer pour le raccourcir un peu.

4

!close