ウィンドウプログラミングのスタイル

アプレットはウィンドウの上で起動されます。 ウィンドウ上のプログラムには独自なスタイルがありますから 注意が必要です。
ウィンドウ上のアプリケーションでは、 従来のプログラムとは少し違ったプログラミング・スタイルが要求されます。 プログラムの各処理は呼び出される順序を、あらかじめ予測することができません。 ユーザーの「気まぐれな」操作に依存するからです。 ユーザーからの入力のことを「イベント」という概念で取り扱います。 そのため上のプログラミング・スタイルは、 「イベント駆動型」と呼ばれます。
 プログラムは、必要な準備を整えると無限ループに入ります。 そして、その中で常に「イベントの入力」をチェックし続けます。 目的のイベント、たとえば「マウスボタンのクリック」を検出すると それに応じてあらかじめ用意された処理、 たとえば「プログラムの終了」が実行されるという仕組みになっています。 ちょうどレストランや喫茶店の仕事にを思い浮かべてください。 いつ来るかわからないお客さん(イベント)を待ち続け、 注文があった時にその注文に合った仕事をしなくてはいけません。 それぞれの仕事をあらかじめ「メニュー」として準備するところも同じです。

Java言語にはイベントを扱う Eventクラスが用意されています。 またアプレットの場合、実際にイベントの監視を行うのはアプレットではなく それをコントロールするビューワの仕事です。 また独立したウィンドウ(Frameクラス)を生成した場合でも、 その時点で独立したスレッドがイベントの監視を担当することになるため、 プログラムの表面には「無限ループ」の形式は登場しません。

マウスやキーボードなどの入力処理だけでなく、 グラフィック表示に関しても特別な配慮が必要です。 ユーザーの操作によって、画面上のウィンドウの重なり合いやアイコン化、 アイコンからの復活などが予想できないタイミングで発生するからです。 これらの処理も一種の「イベント」として取り扱うのが普通です。 アプレットなどの Javaのウィンドウオブジェクトは、いずれも paint()メソッドを用意し、画面の書き直しの要求が発生すると 自動的にその内容を描画し直すことができる仕組みになっています。