Согласно спецификациям JavaBeans, у каждого события есть источник и, быть может, один или несколько подписчиков (получателей).
Источник обязан:
выбрать имя метода, вызываемого в компонентах-подписчиках при распространении события. Этот метод должен содержаться в интерфейсе, который является расширением интерфейса EventListener (данное расширение мы будем называть интерфейсом события);
реализовать метод регистрации подписчиков события и метод аннулирования регистрации;
при распространении события вызвать метод, описанный в интерфейсе события, во всех компонентах-подписчиках.
В свою очередь, подписчик должен предпринять следующие действия:
выполнить реализацию интерфейса события, то есть по сути реализовать метод обработки события (напомним, что имя этого метода выбрал источник);