Beans can use the standard AWT event types defined in the java.awt.event package, but they do not have to. Our YesNoDialog class defines its own event type, AnswerEvent. Defining a new event class is really quite simple; AnswerEvent is shown in Example 10.3.
package oreilly.beans.yesno;
public class AnswerEvent extends java.util.EventObject {
protected int id;
public static final int YES = 0, NO = 1, CANCEL = 2;
public AnswerEvent(Object source, int id) {
super(source);
this.id = id;
}
public int getID() { return id; }
}
Along with the AnswerEvent class, YesNoDialog also defines a new type of event listener interface, ActionListener, that defines the methods that must be implemented by any object that wants to receive notification from a YesNoDialog. The definition of AnswerListener is shown in Example 10.4.
package oreilly.beans.yesno;
public interface AnswerListener extends java.util.EventListener {
public void yes(AnswerEvent e);
public void no(AnswerEvent e);
public void cancel(AnswerEvent e);
}