補足例: サンプル AWT コード
Java Abstract Window Toolkit のバージョン 1.1 は、「イベントリスナ」インタフェースに基づいた新しいイベント処理フレームワークを提供します。プログラマはこのフレームワークに対して、コールバックオブジェクトを書く必要があります。コールバックは、帰するところ GUI とアプリケーションデータ構造の間の柔軟な新しいレイヤになります。これらのアダプタはサブクラス化し、アプリケーションにフックする必要があります。この要点は、GUI コンポーネント自身をサブクラス化したり、イベントコードを解釈するために複雑な if/else および switch 文を書く必要を避けることです。
この設計では、アダプタクラスは対応する if/else および switch コードに比べて、簡単に書き維持できるものである必要があります! これが内部クラスが重要になる由縁です。
次に AWT イベント処理コードの典型的な例を示します。これは命名された親クラス App.GUI を使用して GUI コードを編成し、匿名アダプタを使用し、個別の GUI コンポーネントをアプリケーションのメソッドに結び付けます:
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.setActionListener(
new ActionAdaptor() {
public void actionPerformed(ActionEvent e) {
search(); // App.this.search()
}
}
);
... build a Sort button the same way ...
pack(); show();
}
}
...
}
|
目次 | 前項目 | 次項目
内部クラス仕様 (HTML generated by dkramer on March 15, 1997)
Copyright (c) 1996, 1997 Sun Microsystems, Inc.
All rights reserved
コメントや訂正は john.rose@eng.sun.com 宛てに送ってください。