Um evento deve sempre ter origem em algum objeto fonte, que
é diretamente afetado pelo evento em questão.
Os objetos
source devem prover métodos addXXXListener() e removeXXXListener() para manter
uma lista de objetos listeners interessados em receber notificações sobre a
ocorrência de determinados eventos.