diff options
Diffstat (limited to 'libjava/java/awt/Button.java')
-rw-r--r-- | libjava/java/awt/Button.java | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/libjava/java/awt/Button.java b/libjava/java/awt/Button.java index 139890f..ed954dd 100644 --- a/libjava/java/awt/Button.java +++ b/libjava/java/awt/Button.java @@ -42,6 +42,7 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.peer.ButtonPeer; import java.awt.peer.ComponentPeer; +import java.lang.reflect.Array; import java.util.EventListener; /** @@ -200,13 +201,24 @@ removeActionListener(ActionListener listener) action_listeners = AWTEventMulticaster.remove(action_listeners, listener); } -public EventListener[] -getListeners(Class listenerType) -{ - if (listenerType == ActionListener.class) - return getListenersImpl(listenerType, action_listeners); - return super.getListeners(listenerType); -} + public synchronized ActionListener[] getActionListeners() + { + return (ActionListener[]) + AWTEventMulticaster.getListeners(action_listeners, + ActionListener.class); + } + +/** Returns all registered EventListers of the given listenerType. + * listenerType must be a subclass of EventListener, or a + * ClassClassException is thrown. + * @since 1.3 + */ + public EventListener[] getListeners(Class listenerType) + { + if (listenerType == ActionListener.class) + return getActionListeners(); + return (EventListener[]) Array.newInstance(listenerType, 0); + } /*************************************************************************/ |