ウィンドウが許す限り多くのスペースを占めるように、1 つのパネルに JTable コンポーネントを配置したいと考えています。ただし、その下に、いくつかのボタンを含む別の固定サイズのパネルを追加したいと思います。ウィンドウのサイズに応じて JTable パネルを拡大できるようにしながら、下部パネルを固定サイズにするために使用するレイアウトはどれですか?
2 に答える
それを実現する最も簡単な方法は、 を使用することBorderLayout
です。テーブルを中央に置きます。次に、 でさらに別のパネルを作成しFlowLayout
、メイン パネルの南に配置します。
何が必要かを正確に視覚化するのは難しいですが、Oracle からの抜粋が役立つかもしれません。
シナリオ:可能な限り多くのスペースにコンポーネントを表示する必要があります。
コンテナー内の唯一のコンポーネントである場合は、GridLayout または BorderLayout を使用します。それ以外の場合は、BorderLayout または GridBagLayout が適している可能性があります。
BorderLayout を使用する場合は、スペースを大量に消費するコンポーネントを中央に配置する必要があります。GridBagLayout では、fill=GridBagConstraints.BOTH となるようにコンポーネントの制約を設定する必要があります。もう 1 つの可能性は、BoxLayout を使用して、スペースを大量に消費するコンポーネントに非常に大きな優先サイズと最大サイズを指定させることです。
シナリオ:いくつかのコンポーネントを自然なサイズでコンパクトに並べて表示する必要があります。
JPanel を使用してコンポーネントをグループ化し、JPanel のデフォルトの FlowLayout マネージャーまたは BoxLayout マネージャーのいずれかを使用することを検討してください。これには SpringLayout も適しています。
シナリオ:行と列に同じサイズのいくつかのコンポーネントを表示する必要があります。
GridLayout はこれに最適です。
シナリオ:行または列にいくつかのコンポーネントを表示する必要があります。これらのコンポーネント間のスペース、カスタム配置、またはカスタム コンポーネント サイズが異なる場合があります。
BoxLayout はこれに最適です。
シナリオ:隣接する列のテキスト フィールドを説明するためにラベルの列が使用されるフォームのようなインターフェイスのように、整列された列を表示する必要があります。
これには SpringLayout が自然な選択です。いくつかのチュートリアルの例で使用される SpringUtilities クラスは、コンポーネントの複数の行と列を簡単に整列できるようにする makeCompactGrid メソッドを定義します。
シナリオ:多くのコンポーネントを含む複雑なレイアウトがあります。
GridBagLayout や SpringLayout などの非常に柔軟なレイアウト マネージャーを使用するか、コンポーネントを 1 つ以上の JPanel にグループ化してレイアウトを簡素化することを検討してください。後者のアプローチを取る場合、各 JPanel は異なるレイアウト マネージャーを使用する可能性があります。