5个JPanels的位置

Position of 5 JPanels

** 我是 Java 的新手!

我有 5 个 JPanel,我希望它们像那样放置

这是我目前拥有的:

add(panel1, BorderLayout.PAGE_START);
add(panel2, BorderLayout.NORTH);
add(panel3, BorderLayout.CENTER);
add(panel4, BorderLayout.SOUTH);
add(panel5, BorderLayout.PAGE_END);

它们相互重叠,有些没有显示。我该如何解决它。

除了BorderLayout还有什么可以用的吗?

抱歉,本章已在一个会话中进行了解释。我的主要问题是我不明白我可以用什么替换 BorderLayout.X。

这是我目前的情况:

private JPanel contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5,5,5,5));
contentPane.setLayout(new GridLayout(4,1,0,0));


JPanel panel1 = new JPanel();
panel1.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), 
            "title2", TitledBorder.LEADING, TitledBorder.TOP, null, null));
panel1.setLayout(new GridLayout(2, 2));



JPanel panel2= new JPanel();
panel2.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), 
            "title", TitledBorder.LEADING, TitledBorder.TOP, null, null));
contentPane.add(panel2);
panel2.setLayout(new GridLayout(1,2,0,0));

add(panel1);
add(panel2);
add(panel3);
add(panel4);

我的布局设置为gridLayout,现在添加面板时应该写什么add(panel1, ???)?

您可以使用 GridLayout。使用 GridLayout(int rows, int cols, int hgap, int vgap) 构造函数,您可以定义垂直和水平间隙。

JPanel mainPanel = new JPanel(new GridLayout(5, 1, 0, 5));

并根据您的更新;您必须将 contentPane 设置为您的框架。

frame.setContentPane(contenPane);