SampleWindowクラスはサンプルAgletのための対話型のウィンドウを抽象化したものです。このクラスは共有データ(ウィンドウのコンポーネントなど)、コード(イベント処理など)をカプセル化しています。SampleWindowのより特殊なサブクラスはサンプルAgletで定義されます。そこでは特別なウィンドウ・コンポーネント、イベント処理、コンポーネントレイアウトが定義されます。サンプルAgletの対話型ウィンドウの実装例の解説はこれらのサブクラスを参照してください。
共有コンポーネントにはアドレス帳と対象となるアドレスを指定するテキストフィールド(_addressChooser)、ファイル名を指定するテキストフィールド(_filepath)、メッセージと"worker" Agletの結果を表示する2つのテキストエリアパネル((_msgLine)、_result)が含まれます(SampleAgletを参照してください)。コンポーネントの定義は以下の通りです。
protected AddressChooser _addressChooser = new AddressChooser(); protected TextArea _result = new TextArea(); protected TextArea _msgLine = new TextArea(); protected TextField _filepath = new TextField(FIELD);
他の共有コンポーネントとして2つのボタン、quitとgoがあります。それぞれサンプルagletを破棄する、新たな"worker" agletを生成するという働きをします。
protected Button _go = new Button("Go"); protected Button _quit = new Button("Quit");
共有ウィンドウコンポーネントに加えて、このクラスでは幾つかの共有インスタンス変数も定義されています。例えば、サンプルaglet (goのようなコールバック・メソッドのため)、GridBagLayoutオブジェクト、そしてエラーメッセージを通知するポップアップウィンドウ(PopUpMessageWindowクラス)です。コンストラクタ(SampleWindow)は常に、ウィンドウのサブクラスのコンストラクタにより呼び出され、変数を初期化します。
すべてのメソッドは対話ウィンドウのさまざまなコンポーネントを作るか、もしくはそれらにアクセスするためのメソッドです。
SampleWindowクラスの完全なソースコードはここを参照してください。なお、AddressChooserクラスはサンプルパッケージの一部ではないのでそのソースコードは現在公開されておりません。