JavaのsetSize()とsetPreferredSize()の違い

違いは setSize() および setPreferredSize()は少し複雑です。時々、setSize() そして時々 setPreferredSize()です。一方が私たちのニーズを満たし、もう一方が満たさない場合があります。これら2つの方法の主な違いは?JFrameとJPanelにはどちらを使うべきですか?

コンポーネントに親がない場合は、setSize()はコンポーネントのサイズを変更します。setPreferredSize() と両方のメソッド setMinimumSize() および setMaximumSize()です。setPreferredSize() コンポーネントに最適なサイズを選択すると、レイアウトマネージャはコンポーネントに適切なスペースを配置しようとします.

setSize() 親コンポーネントがレイアウトマネージャを使用している場合は何も行いません。setSize() 効果がある は、JFrameやJWindowなどのトップレベルコンポーネントにあります。以下を呼び出す必要があります。setSize() レイアウトマネージャのない親内部にコンポーネントがある場合.

So, setPreferredSize() レイアウトマネージャがある場合は、そのほとんどが コンポーネントの最適サイズ、最小サイズ、最大サイズを回復します。使うsetSize() および setLocation を使用して、選択したレイアウトのパラメータに従ってこれらのコンポーネントを配置します。

例:

A BorderLayoutは、北部領域の境界を、指定された寸法と等しく設定しようとします。 setPreferredSize() その北部地域の。JFrameのサイズとlayout に従った他のコンポーネントのサイズ.

結論として:
  • setPreferredSize() レイアウトがある場合は、コンポーネントの最適な位置と寸法を計算します。
  • レイアウトがない場合は、setSize()