Précédent Suivant

Les événements


Même si les interfaces graphiques ne sont pas notre objectif dans cette formation, on ne serait pas complet si on ne parlait pas de la gestion des événements. Il serait inutile d'affiche un bouton si on ne peut pas affecter une action à un clic sur ce bouton.
Les événements en Java, quelqu'ils soient, sont tous gérés de la même façon. Ils sont gérés à l'aide de Listener. Ce sont des écouteurs d'événements. Les écouteurs sont des interfaces, il suffit donc d'implémenter l'action que l'on souhaite voir effectuer par ce Listener. Il existe un Listener pour chaque type d'événement possible. Voici un exemple pour répondre à un clic sur un bouton :

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

public class SwingListener {
	static JButton b1, b2;
	static JTextField tf;
	public static void main(String argv[]) {
		JFrame f = new JFrame("Evénements Swing");
		f.setSize(140, 120);
		f.getContentPane().setLayout(null);
		b1 = new JButton("Bouton 1");
		b1.setBounds(20, 10, 100, 20);
		f.getContentPane().add(b1);
		b2 = new JButton("Bouton 2");
		b2.setBounds(20, 35, 100, 20);
		f.getContentPane().add(b2);
		tf = new JTextField();
		tf.setBounds(20, 60, 100, 20);
		f.getContentPane().add(tf);
		class SymAction implements ActionListener {
			public void actionPerformed(ActionEvent event) {
				try {
					Object object = event.getSource();
					if (object == b1) {
						tf.setText("Bouton 1");
					}
					else if (object == b2) {
						tf.setText("Bouton 2");
					}
				}
				catch (Exception e) {}
			}
		}
		SymAction listener = new SymAction();
		b1.addActionListener(listener);
		b2.addActionListener(listener);
		f.setVisible(true);
	}
}

Et voici une capture d'écran du résultat :


Précédent Suivant