目次 | 前項目 | 次項目 内部クラス仕様


補足例: サンプル 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 宛てに送ってください。