1. ホーム
  2. java

[解決済み] Javaです。コンポーネントにおけるsetPreferredSize()メソッドとsetSize()メソッドの相違点

2022-02-14 01:32:08

質問

との主な違いは何ですか? setSize()setPreferredSize() . 時々、私は setSize() 時には setPreferredSize() 一方が思い通りになることもあれば、もう一方が思い通りになることもあります。

にはどのようなコールを使用すればよいのでしょうか? JFrameJPanel s?

どのように解決するのですか?

使用方法は、コンポーネントの親がレイアウトマネージャーを持っているかどうかに依存します。

  • setSize() -- 親レイアウトマネージャーが存在しない場合に使用します。
  • setPreferredSize() (また、その関連する setMinimumSizesetMaximumSize ) -- 親レイアウトマネージャーが存在する場合に使用します。

setSize() メソッドは、コンポーネントの親がレイアウトマネージャを使用している場合、おそらく何もしないでしょう。これが通常効果を発揮するのは、トップレベルのコンポーネント ( JFrameJWindow s)やスクロールされたペインの中にあるものなどです。 また setSize() レイアウトマネージャを持たない親の中にコンポーネントがある場合。

一般的に setPreferredSize() ほとんどのレイアウトマネージャは、コンポーネントの好ましいサイズ(および最小と最大のサイズ)を取得し、その上で setSize()setLocation() を使用して、レイアウトの規則に従ってこれらのコンポーネントを配置します。

例えば BorderLayout は、その北側コンポーネントの望ましいサイズと同じになるようにしようとします。 JFrame レイアウトに含まれる他のコンポーネントのサイズなど。