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 ...
Get Computer Graphics for Java Programmers, Second Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.