C'est de la programmation événementielle : tu indiques la réaction à un événement (dans ton cas : que faire lorsqu'un bouton est "pressé").
Tu as plusieurs manières de faire :
- la classe "englobante" hérite de ActionListener, tu indiques que le listener est "this" et tu implémentes : je n'aime pas cette méthode car je trouve qu'elle alourdit énormément le code et le rend illisible.
- tu crées une classe anonyme d'ActionListener : tu crées le listener directement où celui-ci est utilisé.
- tu crées une classe interne nommée : c'est la même que la classe anonyme, mais ça permet un autre découpage. C'est à la préférence de chacun.
- tu crées une classe nommée : ce cas est à utiliser si tu peux factoriser ton listener et le réutiliser pour éviter les duplications de code et faciliter la maintenance.
Au niveau code, basiquement, c'est :
JButton button = new JButton("My wonderful button");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
System.out.println("Button clicked !");
}
});
(code non-testé)
Est-ce que cela répond à tes interrogations ?
EDIT : tiens, la balise code ne conserve plus les tabulations en début de ligne x)
Message édité le 11 septembre 2015 à 10:39:20 par Bunyan