44

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

2つの方法の違いは何ですか? 彼らはどういうわけか関連していますか?

4

2 に答える 2

80

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

JFrame :

JFrameと を拡張ComponentContainerます。

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

JPanel :

JPanel拡張しComponentContainerJComponent

これは、他の をグループ化するために使用されるジェネリック クラスComponentです。

  • fi を使用して作業する場合に便利です。LayoutManagerたとえば、さまざまな にコンポーネントを追加し、それらを に追加して GUI を作成する場合に便利です。再利用性と 管理性が向上します。GridLayoutJPanelJFrameLayout

  • また、Swing でペイント/描画するときにも役立ちます。オーバーライドするpaintComponent(..)と、もちろん、ダブル バッファリングを最大限に楽しむことができます。

JWindowSwing GUI は、( 、WindowJFrame FrameまたはApplet) のような最上位のコンテナーなしでは存在できませんが、JPanels がなくても存在する可能性があります。

于 2012-11-03T19:00:51.263 に答える
51

JFrame窓です。その中に 1 つ以上のJPanelインスタンスを含めることができます。 窓JPanelではありません。

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

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

于 2012-11-03T19:00:08.600 に答える