Appendix B. A Note on Event Handling
A brief discussion of event handling in Java will be helpful to understand some related, rather cryptic program fragments in this book.
An event listener
For some component, say, a button bt, we can write
bt.addActionListener(x);
where x is an object of a class that implements the interface ActionListener. Since this implies that there is a method actionPerformed in this class, the above statement is in fact a means to provide the button bt with information about how to respond to the user clicking this button. For example, the above statement might be preceded by
ButtonAction x = new ButtonAction();
with ButtonAction defined as
class ButtonAction implements ActionListener
{ public void actionPerformed(ActionEvent ae)
{ System.out.println("Button bt clicked.");
}
}The object x in the above example is referred to as an event listener.
Using this as an event listener
Instead of writing a special class, such as ButtonAction, for the event in question, we may as well use a class that also contains methods that are unrelated to it, provided that this class implements the interface ActionListener. In particular, we can use the very class in which we create the button and call the method addActionListener, writing
class MyFrame extends Frame implements ActionListener
{ MyFrame()
{ ...
bt.addActionListener(this);
...
}
public void actionPerformed(ActionEvent ae){ ... }
...
}In contrast to our previous example, this method actionPerformed has access to all fields ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access