web-dev-qa-db-ja.com

JPanel、JFrame、JComponent、およびJAppletの違い

私は楽しみのために物理シミュレータを作成しています。これらすべてのJの違いを理解しようとしたときに、グラフィックチュートリアルを探していました。誰かがそれらについて詳しく説明したり、おそらく役立つソースへのリンクを提供したりできますか?

43
Andyroo

これらのクラスは、Java UIデザインの共通の拡張ポイントです。まず、必ずしも互いに直接関係があるわけではないことに注意してください。そのため、それらの関係を見つけようとすると逆効果になる場合があります。

JApplet-インタラクティブなWebページのように、ブラウザのコンテキスト内で実行されるコードを記述できる基本クラス。これはクールですべてですが、現実の世界でニースをプレイするための価格である制限をもたらします。通常、JAppletは、Webページで独自のUIを使用する場合に使用されます。私はいつも人々がセッションの状態を保存するためにアプレットを利用しないので、データベースやクッキーが必要ないのではないかといつも思っていました。

JComponent-Swingとやり取りするオブジェクトの基本クラス。

JFrame-ウィンドウに必要なものを表すために使用されます。これには、境界線(サイズ変更可能なy/n?)、タイトルバー(アプリ名または他のメッセージ)、コントロール(最小化/最大化を許可しますか?)、および 'window close'(アプリの終了を許可しますか?)などのさまざまなシステムイベントのイベントハンドラーが含まれます。

JPanel-他の要素を収集するために使用される汎用クラス。これは、ビジュアルレイアウトまたは提供されているレイアウトマネージャーのいずれかと連携する場合により重要です。 gridbaglayoutなど。たとえば、予約した領域よりも大きいテキストボックスがあります。テキストボックスをスクロールペインに配置し、そのペインをJPanelに配置します。その後、JPanelを配置すると、レイアウトの点で管理しやすくなります。

41
Kelly S. French

JFrameとJAppletはトップレベルのコンテナです。デスクトップアプリケーションを作成する場合はJFrameを使用し、ブラウザでアプリケーションをホストする予定がある場合はJAppletを使用します。

JComponentは、すべてのSwingコンポーネントの抽象クラスであり、新しいコンポーネントの基本クラスとして使用できます。 JPanelは、ほとんどすべてに使用できるシンプルで使用可能なコンポーネントです。

これは楽しいプロジェクトであるため、最も簡単な方法は、JPanelを使用して、それをJFrameまたはJApplet内でホストすることです。 Netbeansには、Swingの簡単な例を使用したビジュアルデザイナーがいます。

19
aco

Oracleのクラスを検索すると便利な場合があります。例えば:

http://download.Oracle.com/javase/1.4.2/docs/api/javax/swing/JFrame.html

JFrameがJComponentとJContainerを拡張していることがわかります。

JComponentは描画可能な基本オブジェクトです。JContainerはこれを拡張して、コンポーネントを追加できるようにします。 JPanelとJFrameは両方とも、JComponentを拡張できます。 JFrameはウィンドウを提供しますが、JPanelはウィンドウ内にある単なるパネルです。それが理にかなっている場合。

5