私はJava GUIを学んでいます。ウィンドウを作成する方法を学んだのは、JFrameクラスを継承または拡張することJFrameであり、ウィンドウのすべてのプロパティが含まれているため、それを使用するのは良いことです。このウィンドウに何かを追加したい場合は、add()メソッドを使用する必要があります。JPanelしかし、今日、ウィンドウを作成するものに出くわし、 jpanelObjec.add().
2つの方法の違いは何ですか? 彼らはどういうわけか関連していますか?
クラスを不必要に拡張しないでJFrameください (クラスに機能を追加する場合のみJFrame) 。
JFrame :
JFrameと を拡張ComponentしContainerます。
これは、ウィンドウの最小要件を表すために使用される最上位のコンテナーです。これにはBorder、 、サイズ変更可能性 (JFrameサイズ変更可能かどうか)、タイトル バー、コントロール (最小化/最大化が許可されているかどうか)、および などのさまざまな のイベント ハンドラーが含まれEventます。windowClosewindowOpened
JPanel :
JPanel拡張しComponent、ContainerJComponent
これは、他の をグループ化するために使用されるジェネリック クラスComponentです。
fi を使用して作業する場合に便利です。LayoutManagerたとえば、さまざまな にコンポーネントを追加し、それらを に追加して GUI を作成する場合に便利です。再利用性と 管理性が向上します。GridLayoutJPanelJFrameLayout
また、Swing でペイント/描画するときにも役立ちます。オーバーライドするpaintComponent(..)と、もちろん、ダブル バッファリングを最大限に楽しむことができます。
JWindowSwing GUI は、( 、Window、JFrame FrameまたはApplet) のような最上位のコンテナーなしでは存在できませんが、JPanels がなくても存在する可能性があります。
JFrame窓です。その中に 1 つ以上のJPanelインスタンスを含めることができます。 窓JPanelではありません。
Swing チュートリアルが必要です。