3

南北と西のみ​​のボーダー レイアウトに 3 つのパネルを追加しようとしています

何かのようなもの

[A]

     ___  ______________
    |   ||    P2        |
    |   ||______________|
    |P1 | ______________
    |   ||    P3        |
    |___||______________|

私は何かをしようとします

JFrame window = new JFrame();
window.setLayout(new BorderLayout());
window.add(P1, BorderLayout.WEST);
window.add(P2, BorderLayout.NORTH);
window.add(P3, BorderLayout.SOUTH);

それは次のようになります

[B]
         ______________
        |    P2        |
        |______________|
         ___
        |P1 |
        |___|
         ______________
        |    P3        |
        |______________|

問題を回避するために、センターとしてギャップのようなものを追加する必要がありますか? P2 と P3 を別のビッグ パネルに配置して、P1 - West and Big Panel- Center を追加しようとしましたが、これを回避する他の方法はありますか? または、別のレイアウトを試す必要があります。

4

3 に答える 3

3

それが機能する方法ですBorderLayoutNORTHおよびコンポーネントは、 、、およびコンポーネントSOUTHの上および下に水平に伸びます。WESTCENTEREAST

2 つの s を持つシステムBorderLayoutは完全に問題ありません。GridBagLayoutまたはで同じことを達成できますが MigLayout、実装にははるかに時間がかかることを保証します。中間パネルを使用することは、物事を行うための有効な方法です。

于 2011-11-10T20:17:50.837 に答える
0

MigLayoutの代わりに試してくださいBorderLayout。コードは次のようになります。

setLayout(new MigLayout("wrap 2, fill"));
add(P1, "span 1 2, grow");
add(P2, "grow");
add(P3, "grow");

http://www.miglayout.com

于 2011-11-10T20:25:30.760 に答える
0

JFrame ウィンドウ = 新しい JFrame(); window.setLayout(新しい BorderLayout()); window.add(P1, BorderLayout.SOUTH); window.add(P4, BorderLayout.WEST);

P4.setLayout(新しい BorderLayout()); P4.add(P2, BorderLayout.NORTH); P4.add(P3, BorderLayout.SOUTH);

于 2011-11-10T20:21:07.583 に答える