我正在尝试将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放入另一个Big面板并添加,P1 - West和Big Panel- Center还有其他方法吗?或者我应该尝试不同的布局。
答案 0 :(得分:3)
这就是BorderLayout
的工作方式; NORTH
和SOUTH
组件在WEST
,CENTER
和EAST
组件的上方和下方水平延伸。
您的系统有两个BorderLayout
s完全没问题。您可以使用GridBagLayout
或MigLayout
实现相同的目标,但我保证您需要花费更长时间才能实施。使用中间面板是一种有效的方法。
答案 1 :(得分:0)
JFrame window = new JFrame(); window.setLayout(new BorderLayout()); window.add(P1,BorderLayout.SOUTH); window.add(P4,BorderLayout.WEST);
P4.setLayout(new BorderLayout()); P4.add(P2,BorderLayout.NORTH); P4.add(P3,BorderLayout.SOUTH);
答案 2 :(得分:0)
尝试使用MigLayout
代替BorderLayout
。代码如下所示:
setLayout(new MigLayout("wrap 2, fill"));
add(P1, "span 1 2, grow");
add(P2, "grow");
add(P3, "grow");