アプレットの場合と違って、
ウィンドウ上のアプリケーションを設計するためには、
その土台となる独立なウィンドウのオブジェクトが必要になります。
これらのクラスも java.awtの中に用意されています。
それが、これから紹介する Window および Frame クラスです。
土台のウィンドウの中には他のコンポーネントを配置することになりますから、
レイアウトの機能が必要になります。
実際、Windowも Frameも Container のサブクラスです。
クラスの継承関係をまとめると、以下のようになります。
Component -- Container -- Window -- Frame
Frame は Window のサブクラスであることに注意してください。
したがって、独立なウィンドウとしての基本的な性質は Windowクラスの
レベルで定義されます。Frame はそれに「トップレベルのウィンドウ」
としての機能が拡張されたものです。
「トップレベルのウィンドウ」とは何でしょうか?
トップレベルのウィンドウはアプリケーションの一番外側にあって、
ウィンドウシステムからのサービスを受けることができるウィンドウです。
具体的には、タイトルバーの表示、アイコン化、ユーザーによるリサイズ操作、
などの機能が挙げられます。
したがって、たいていのアプリケーションは Frameのオブジェクトを最低1つは
生成することになります。
これに対して、Windowのオブジェクトはいわば「裸」の状態で画面上に
表示されます。ポップアップのメニューなどの一番外側のウィンドウに
主として利用されます。