swing java的布局
我想创建一个这样的布局
这是我的代码(不工作):
outer.setLayout(new BorderLayout());
panel1 = new JPanel();
...
outer.add(panel1, BorderLayout.PAGE_START);
outer.add(panel2, BorderLayout.LINE_START);
outer.add(panel3, BorderLayout.CENTER);
outer.add(panel4, BorderLayout.LINE_END);
outer.add(panel5, BorderLayout.PAGE_END);
注:上面的面板5应包含2个以上的面板
在上面的代码中,我可以将它们放在正确的位置,但是中间的一个(面板3)非常大,所以所有其他的都被挤压到一边
我怎样才能得到这些尺寸的一些比例,如2:10:2等
我应该改变我的布局吗
# 1 楼答案
将GridBagLayout用于类似于表/矩阵的布局,其中一些“单元”占用多个插槽。 BorderLayout用于一个中央面板,周围有一些边框面板
有一个
GridBagConstraints
构造函数设置所有字段。然而,这里的可读性不太好它也是一个非常容易出错的布局
# 2 楼答案
如果您想做类似的事情,使用BorderLayout是一个好的开始。所以,是的,我在这里也会使用BorderLayout
但是,您应该更改添加面板的方式:
这看起来应该已经有点像样了,但是如果您仍然想改变它的外观,那么您应该向这些面板添加一些组件。布局管理器将自动调整面板大小,使所有内容都适合