
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;


public class MaRadio extends JFrame 
                     implements ActionListener {

  static String[] names = new String[] {
    "Inter",
    "Nova",
    "FranceCu",
    "Jazzland",
    "Carbone 14",
    "Tombouctou"
  };
  JTextField textField;
  JTextArea textArea;


  public static void main(String argv[]) {
    MaRadio toplevel = new MaRadio();
    // initialiser le titre, la disposition et rendre visible
    toplevel.setTitle("Ma Radio");
    toplevel.pack();
    toplevel.show();
  }


  public MaRadio() {
    Container contentPane = getContentPane();

    // Zone de texte au "nord" de la fenêtre principale
    textArea = new JTextArea(10, 25);
    contentPane.add(BorderLayout.NORTH, textArea);
    textArea.setEditable(false);
    

    // panel2 au "centre" de la fenêtre principale
    JPanel panel2 = new JPanel();
    contentPane.add(BorderLayout.CENTER, panel2);

    // GridLayout ==> grille elastique de cellules identiques
    panel2.setLayout(new GridLayout(2,3));   // lignes et colonnes

    // cet objet rendra les RadioButtons exclusifs
    ButtonGroup radioGroup = new ButtonGroup();

    for (int k = 0; k < names.length; k++) {
      JRadioButton radioButton = new JRadioButton(names[k]);
      radioButton.addActionListener(this);

      // ajouter chaque bouton au panel pour qu'il s'affiche
      panel2.add(radioButton);

      // ajouter chaque bouton au RadioGroup pour le rendre exclusif
      radioGroup.add(radioButton);

      // sert uniquement a mieux voir ce qui se passe quand on retaille
      // la fenetre
      radioButton.setBorderPainted(true);
    }

    // panel1 au "sud" de la fenêtre principale
    JPanel panel1 = new JPanel(); 
    contentPane.add(BorderLayout.SOUTH, panel1);

    panel1.add(new JLabel("Valeur"));

    textField = new JTextField(20);
    textField.addActionListener(this);
    panel1.add(textField);

    JButton ok = new JButton("Ok");
    ok.addActionListener(this);
    panel1.add(ok);
  }


  // méthode appelée quand on clique sur le button Ok
  // ou quand on tape ENTER sur le TextField
  //
  public void actionPerformed(ActionEvent e) {

    textArea.append(textField.getText() 
		    + " :: " 
		    + e.getActionCommand() 
		    + "\n");
  }
}


