Event source and listener : Event Queue « Event « Java

Event source and listener


import java.util.ArrayList;
import java.util.EventListener;
import java.util.EventObject;

abstract class TestEventSource {
  public abstract void addListener(TestEventListener l);

  public abstract void removeListener(TestEventListener l);

  public abstract void fireEvent(java.util.EventObject o);

  public void test() {
    addListener(new TestEventListener("A"));
    fireEvent(new java.util.EventObject(this));

class TestEventListener implements EventListener {
  String id;

  public TestEventListener(String id) {
    this.id = id;

  public void handleEvent(EventObject o) {
    System.out.println(id + " called");
    if (id.equals("C")) {
      ((TestEventSource) o.getSource()).removeListener(this);

public class Main extends TestEventSource {
  ArrayList listeners = new ArrayList();
  public void addListener(TestEventListener l) {
  public void removeListener(TestEventListener l) {
  public void fireEvent(EventObject o) {
    for (int i = 0; i < listeners.size(); i++) {
      TestEventListener l = (TestEventListener) listeners.get(i);
  public static void main(String[] args) {
    Main pfles = new Main();



Related examples in the same category

1.Use the Event queue to retrieve eventUse the Event queue to retrieve event
2.Event object has information about an event, that has happened.
3.Register several listeners for one event.
5.Adding an InputMap to a Component
6.Multiple sources: A listener can be plugged into several sources.
7.Using an inner ActionListener class.
8.void java.awt.Toolkit.addAWTEventListener(AWTEventListener listener, long eventMask)
9.int java.awt.event.WindowEvent.WINDOW_OPENED
11.Register action
12.Using EventQueue.invokeLater to start a Swing application