BorderLayout布局的JPanel为什么不能多次“嵌套”?求高手指点
public class Test extends JFrame{
private BorderLayout borderLayout = new BorderLayout(5,0);
private JPanel p1 = new JPanel();
private JPanel p2 = new JPanel();
public Test() {
this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
this.p1.setLayout(borderLayout);
this.p2.setLayout(borderLayout);
this.p1.add(new JButton("RRRR"),BorderLayout.NORTH);
this.p1.add(new JButton("qqqq"),BorderLayout.CENTER);
this.p1.add(new JButton("www"),BorderLayout.SOUTH);
this.p2.add(p1,BorderLayout.NORTH);
this.add(p2);
this.setSize (400,600);
this.setVisible(true);
}
public static void main(String[] args){
Test t = new Test();
}
}
不知道你这个问题是否已经解决, 如果还没有解决的话:BorderLayout(边框布局管理器)是 Window、JFrame 和 JDialog 的默认布局管理器。边框布局管理器将窗口分为 5 个区域:North、South、East、West 和 Center。其中,North 表示北,将占据面板的上方;Soufe 表示南,将占据面板的下方;East表示东,将占据面板的右侧;West 表示西,将占据面板的左侧;中间区域 Center 是在东、南、西、北都填满后剩下的区域。
一、构造方法:
BorderLayout()
:创建一个 Border 布局,组件之间没有间隙。BorderLayout(int hgap,int vgap)
:创建一个 Border 布局,其中 hgap 表示组件之间的横向间隔;vgap 表示组件之间的纵向间隔,单位是像素。二、设置组件布局的方法:
JFrame.add(button1,BorderLayout.NORTH);
JFrame.add(button2,BorderLayout.WEST);
JFrame.add(button3,BorderLayout.CENTER);
JFrame.add(button4,BorderLayout.EAST);
JFrame.add(button5,BorderLayout.SOUTH);
(如果没有设置某一区域,其他区域就会填充进去。)