import javax.swing.*; import java.awt.*; import java.awt.event.*; public class LesComponents extends JFrame implements ActionListener { JTextField textField; JTextArea textArea; JCheckBox[] checkboxes = new JCheckBox[3]; public static void main(String argv[]) { LesComponents toplevel = new LesComponents(); // initialiser le titre, la disposition et rendre visible toplevel.setTitle("Les Components"); toplevel.pack(); toplevel.show(); } public LesComponents() { Container contentPane = getContentPane(); // BorderLayout = disposition de type "points cardinaux" // ==> emploi spécifique de la methode add() esnuite contentPane.setLayout(new BorderLayout()); // creer un JPanel (Conteneur interne) et les widgets inclus // panel1 sera place au "nord" de la fenetre principale JPanel panel1 = new JPanel(); contentPane.add(BorderLayout.NORTH, panel1); panel1.add(new JLabel("Valeur")); //NB: textField est une variable d'instance textField = new JTextField(20); // 20 = nombre de colonnes textField.addActionListener(this); panel1.add(textField); //NB: ok est une variable locale (i.e. locale a la methode) JButton ok = new JButton("Ok"); ok.addActionListener(this); panel1.add(ok); // Deuxieme JPanel (place au "sud" de la fenetre principale) JPanel panel2 = new JPanel(); contentPane.add(BorderLayout.SOUTH, panel2); checkboxes[0] = new JCheckBox("Oui", true); checkboxes[1] = new JCheckBox("Non"); checkboxes[2] = new JCheckBox("Bof"); panel2.add(checkboxes[0]); panel2.add(checkboxes[1]); panel2.add(checkboxes[2]); // Zone de texte (placee au "centre" de la fenêtre principale) textArea = new JTextArea(10, 25); // 10 lignes, 25 colonnes textArea.setEditable(false); // texte non modifiable contentPane.add(BorderLayout.CENTER, textArea); } // méthode appelée quand on clique sur le button Ok // ou quand on tape ENTER sur le TextField // public void actionPerformed(ActionEvent e) { String text = textField.getText(); textArea.append(text + "\n"); System.out.println(" - id: " + e.getID()); System.out.println(" - command: " + e.getActionCommand()); } }