Further Example: Sample AWT code
The 1.1 version of the Java Abstract Window Toolkit provides a new event
handling framework, based on "event listener" interfaces, to which the
programmer must write callback objects. The callbacks amount to a flexible
new layer between the GUI and the application's data structures. These
adapters must be subclassed to hook them up to the application. The point of
this is to avoid the need to subclass the GUI components themselves, or to
write complicated if/else
and switch
statements to interpret event codes.
This design requires that the adapter classes be simpler to write and maintain
than the corresponding if/else
and switch
code! This is where inner
classes become important.
Here is an typical example of AWT event handling code. It uses a named inner
class App.GUI
to organize the GUI code, and anonymous adapters to tie
individual GUI components to the application's methods:
public class App {
void search() { ...do search operation...}
void sort() { ...do sort operation ... }
static public void main(String args[]) {
App app = new App(args);
GUI gui = app.new GUI(); // make a new GUI enclosed by app
}
class GUI extends Frame { // App.GUI is enclosed in an App.
public GUI() {
setLayout(new FlowLayout());
Button b;
add(b = new Button("Search"));
b.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
search(); // App.this.search()
}
}
);
... build a Sort button the same way ...
pack(); setVisible(true);
}
}
...
}
|
Contents | Prev | Next
Inner Classes Specification (HTML generated by dkramer on March 15, 1997)
Copyright © 1996, 1997 Sun Microsystems, Inc.
All rights reserved
Please send any comments or corrections to john.rose@eng.sun.com