web-dev-qa-db-ja.com

JPanel vs JFrame in Java

私はJava gui。を学習しています。ウィンドウを作成する方法は、JFrameクラスを継承または拡張することです。JFrameにはすべてが含まれているため、ウィンドウのプロパティ今、このウィンドウに何かを追加したい場合は、add()メソッドを使用する必要がありますが、今日はウィンドウを作成するJPanelに遭遇しました。 jpanelObjec.add()によって。

2つの方法の違いは何ですか?それらは何らかの関係がありますか?

37
Naruto

JFrameクラスを不必要に拡張しないでください(JFrameクラスに追加機能を追加する場合のみ)

JFrame

JFrameComponentおよびContainerを拡張します。

これは、ウィンドウの最小要件を表すために使用される最上位のコンテナーです。これには、Borders、サイズ変更可能(JFrameサイズ変更可能)、タイトルバー、コントロール(最小化/最大化許可)、およびEventなどのさまざまなwindowClosesのイベントハンドラーが含まれます。 windowOpenedなど.

JPanel

JPanelComponentContainer、およびJComponentを拡張します

これは、他のComponentsをグループ化するために使用される汎用クラスです。

  • LayoutManagersを使用する場合に便利です。 GridLayout f.i別のJPanelsにコンポーネントを追加し、JFrameに追加して、GUIを作成します。 Layoutおよび再利用性の点で管理しやすくなります。

  • また、Swingでペイント/描画するときに、paintComponent(..)をオーバーライドし、もちろんダブルバッファリングの完全な喜びを得るのに役立ちます。

Swing GUIは、(JWindowWindowJFrameFrameまたはApplet)のようなトップレベルのコンテナなしでは存在できませんが、JPanels。

68
David Kroukamp

JFrameはウィンドウです。内部に1つ以上のJPanelインスタンスを含めることができます。 JPanelnotウィンドウです。

Swingチュートリアルが必要です:

http://docs.Oracle.com/javase/tutorial/uiswing/

42
duffymo