Java中BorderLayout的一些奇怪问题。。。

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();
}

}

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/745675
  • 这篇博客你也可以参考下:Java BorderLayout(边框布局)布局管理器
  • 这篇博客也不错, 你可以看下Java BorderLayout(边框布局)布局管理器
  • 除此之外, 这篇博客: 如何用JAVA写一个简单的电脑客户端应用中的 边框布局管理器BorderLayout 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    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);
    

    (如果没有设置某一区域,其他区域就会填充进去。)


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^