ウィンドウ上のアプリケーションでは、
従来のプログラムとは少し違ったプログラミング・スタイルが要求されます。
プログラムの各処理は呼び出される順序を、あらかじめ予測することができません。
ユーザーの「気まぐれな」操作に依存するからです。
ユーザーからの入力のことを「イベント」という概念で取り扱います。
そのため上のプログラミング・スタイルは、
「イベント駆動型」と呼ばれます。
Java言語にはイベントを扱う Eventクラスが用意されています。
またアプレットの場合、実際にイベントの監視を行うのはアプレットではなく
それをコントロールするビューワの仕事です。
また独立したウィンドウ(Frameクラス)を生成した場合でも、
その時点で独立したスレッドがイベントの監視を担当することになるため、
プログラムの表面には「無限ループ」の形式は登場しません。
マウスやキーボードなどの入力処理だけでなく、
グラフィック表示に関しても特別な配慮が必要です。
ユーザーの操作によって、画面上のウィンドウの重なり合いやアイコン化、
アイコンからの復活などが予想できないタイミングで発生するからです。
これらの処理も一種の「イベント」として取り扱うのが普通です。
アプレットなどの Javaのウィンドウオブジェクトは、いずれも
paint()メソッドを用意し、画面の書き直しの要求が発生すると
自動的にその内容を描画し直すことができる仕組みになっています。