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