Zdarzenie foo tworzone jest poprzez:

utworzenie interfejsu zdarzenia FooListener rozszerzającego interfejs java.util.EventListener, dodanie metod addFooEventListener() oraz removeFooEventListener(), które pozwalają rejestrować i usuwać procedury obsługi zdarzenia.

Specyfikacja nie precyzuje, w jaki sposób komponent emituje zdarzenie. Operacja ta może, ale nie musi być udostępniona na zewnątrz ziarna. Jeśli komponent reprezentuje kontrolkę graficznego interfejsu użytkownika, wygenerowanym zdarzeniem może być np. kliknięcie w kontrolkę. Tworząc obiekt implementujący wymieniony wyżej interfejs, możemy dodać do kontrolki własny kod obsługi kliknięcia.

import java.util.EventListener; import java.util.List; import java.util.LinkedList;

class SomeControl implements Serializable { private List<FooListener> fooListeners;

public SomeControl() { this.fooListeners = new LinkedList<>();

public void addFooEventListener(FooListener listener) { this.fooListeners.add(listener);

public void removeFooEventListener(FooListener listener) { this.fooListeners.remove(listener);

public static interface FooListener extends EventListener { public void processFoo();

Wizualne narzędzia budowy kodu potrafią rozpoznawać zdarzenia obsługiwane przez ziarno i udostępniać kreatory obiektów odpowiedzi.