java JPanel布局问题
因此,我对向主面板添加两个JPanel有一个小问题。我把它作为我想做的一个快速示例,因为您不想查看大量不必要的代码:)。我希望先添加第一个面板(北部),然后添加第二个面板(南部)。我尝试过使用BorderLayout,并在添加面板时将它们放置在BorderLayout上调用north和south,但仍然没有成功
提前谢谢
private JPanel one,two;
public Example(){
one = new JPanel();
one.setSize(new Dimension(400,400));
two = new JPanel(new GridLayout(7,8));
two.setSize(new Dimension(400,400));
one.setBackground(Color.BLACK);
two.setBackground(Color.BLUE);
JPanel mainpanel = new JPanel();
mainpanel.setBackground(Color.orange);
mainpanel.add(one);
mainpanel.add(two);
add(mainpanel);
setSize(500,500);
setVisible(true);
}
# 1 楼答案
试试这个代码。有一个问题很明显,若你们在一个面板上安装网格布局,并且并没有添加任何组件,那个么它就不会占用空间
# 2 楼答案
如果要使用BorderLayout,请选择BorderLayout。中心占据尽可能多的空间,其他方向只占他们需要的空间。如果您向JPanel添加额外的内容,它们将根据所包含对象的需要变得更大
如果要在主JPanel中均匀地划分空间,请尝试以下操作:
这将创建一个包含2行1列的GridLayout
# 3 楼答案
GridLayout
忽略所包含组件的setSize方法中设置的值。如果要控制每个组件的大小,请考虑使用GridBagLayout。