import javax.swing.*; import java.awt.*; import java.awt.event.*; // sous-classe de JFrame (fenetre principale d'une appli graphique) public class LesBoutons extends JFrame implements ActionListener { JLabel label; JButton b1, b2, b3; public static void main(String argv[]) { // instancier la classe LesBoutons toplevel = new LesBoutons(); // initialiser le titre, la disposition spatiale et rendre visible toplevel.setTitle("Les Boutons"); toplevel.pack(); toplevel.show(); } public LesBoutons() { // RAPPEL: il faut ajouter les enfants au contentPane et non // directement au JFrame Container contentPane = getContentPane(); // changer le layout (disposition spatiale) du JFrame // ==> associer le LayoutManager desire au contentPane contentPane.setLayout(new FlowLayout()); // creer les autres widgets b1 = new JButton("Bouton 1"); b2 = new JButton("Bouton 2"); b3 = new JButton("Bouton 3"); label = new JLabel("Message ..."); label.setOpaque(true); // ajouter ces widgets au Frame contentPane.add(b1); contentPane.add(b2); contentPane.add(b3); contentPane.add(label); // attacher un ActionListener pour recuperer les clics souris b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); } public void actionPerformed(ActionEvent e) { int id = e.getID(); Object which_button = e.getSource(); String command = e.getActionCommand(); String str = e.toString(); // NB: cette meme méthode sera appelée lorsque l'on cliquera // sur l'un des TROIS boutons ==> il faudra distinguer ces appels // via: e.getSource() ou e.getActionCommand() System.out.println(" - str: " + str); System.out.println(" - id: " + id); System.out.println(" - command: " + command); System.out.println(" - source: " + which_button); } }