Java Reference
In-Depth Information
public interface ConnectionListener extends EventListener
public interface FolderListener extends EventListener
public interface MessageChangedListener extends EventListener
public interface MessageCountListener extends EventListener
public interface StoreListener extends EventListener
public interface TransportListener extends EventListener
Each of these interfaces declares one or more methods that must be provided by im‐
plementing classes. For example, the ConnectionListener class declares these three
methods:
public void opened ( ConnectionEvent event )
public void disconnected ( ConnectionEvent event )
public void closed ( ConnectionEvent event )
The FolderListener interface declares these three methods:
public void folderCreated ( FolderEvent event )
public void folderDeleted ( FolderEvent event )
public void folderRenamed ( FolderEvent event )
Four of these events can be fired by folders. Consequently, there are 8 add XXX Listen
er() and remove XXX Listener() methods in the Folder class:
public void addConnectionListener ( ConnectionListener listener )
public void removeConnectionListener ( ConnectionListener listener )
public void addFolderListener ( FolderListener listener )
public void removeFolderListener ( FolderListener listener )
public void addMessageCountListener ( MessageCountListener listener )
public void removeMessageCountListener ( MessageCountListener listener )
public void addMessageChangedListener ( MessageChangedListener listener )
public void removeMessageChangedListener ( MessageChangedListener listener )
The add XXX Listener() methods add an implementation of the particular interface to
the list of listeners. The remove XXX Listener() methods remove an implementation
from that list. All of this works exactly as it does in JavaBeans and Swing, just with
different events.
For example, suppose you want to be notified every time a new email message arrives.
First you implement the MessageCountListener interface with a class that responds to
message added events as shown in Example 9-1 .
Example 9-1. Message Notifier
import javax.mail.* ;
import javax.mail.event.* ;
public class MessageArrival implements MessageCountListener {
@Override
public void messagesAdded ( MessageCountEvent event ) {
Message [] newMessages = event . getMessages ();
for ( Message message : newMessages ) {
Search WWH ::




Custom Search