Bonjour,
je développe un composant swing perso, et je voudrais pouvoir lui ajouter un ActionListener. Je n'arrive pas à trouver quelle interface je dois implémenter pour le faire.
Quelqu'un aurait-il une idée ?
Merci d'avance![]()
Bonjour,
je développe un composant swing perso, et je voudrais pouvoir lui ajouter un ActionListener. Je n'arrive pas à trouver quelle interface je dois implémenter pour le faire.
Quelqu'un aurait-il une idée ?
Merci d'avance![]()
Même si le problème est résolu, je me permet de rajouter qu'AbstractButton n'est pas une interface mais une classe...
Si c'est juste pour avoir une liste d'actionListener, il n'existe pas d'interface ActionObserver...
On peut cependant facilement l'implémenter avec le Pattern Observer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.EventListener; import javax.swing.event.EventListenerList; public class Composant { /** * List of the component listeners */ private EventListenerList listeners = new EventListenerList(); /** * Add an action listener. * @param actionListener The ActionListener to add. */ public void addActionListener(ActionListener actionListener) { listeners.add(ActionListener.class, actionListener); } /** * Remove an action listener. * @param actionListener The ActionListener to remove. */ public void removeActionListener(ActionListener actionListener) { listeners.remove(ActionListener.class, actionListener); } /** * Notifies all listeners that have registered interest for notification * on this event type. The event instance is lazily created using the * event parameter. * @param actionEvent The ActionEvent object */ protected void fireActionPerformed(ActionEvent actionEvent) { for (EventListener eventListener : listeners .getListeners(ActionListener.class) { ((ActionListener) eventListener).actionPerformed(actionEvent); } } }
Partager