Java 5个JPanel的位置

Java 5个JPanel的位置,java,jpanel,border-layout,Java,Jpanel,Border Layout,**我是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); private JPanel contentPane

**我是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);
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));
它们相互重叠,有些没有显示出来。我怎样才能修好它

除了BorderLayout,还有什么可以使用的吗? 抱歉,本章仅在一节课中进行了解释。我的主要问题是我不明白用什么来代替BorderLayout.X

以下是我目前掌握的情况:

add(panel1, BorderLayout.PAGE_START);
add(panel2, BorderLayout.NORTH);
add(panel3, BorderLayout.CENTER);
add(panel4, BorderLayout.SOUTH);
add(panel5, BorderLayout.PAGE_END);
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));


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

您可以使用
gridLayout
。Wtih
GridLayout(int行、int列、int hgap、int vgap)
constructor您可以定义垂直和水平间隙

JPanel mainPanel = new JPanel(new GridLayout(5, 1, 0, 5));
根据你的最新情况;您必须将
contentPane
设置为您的框架

frame.setContentPane(contenPane);

查看
BorderLayout
的描述,您会发现它不适合您的设计(它在顶部和底部有一个插槽,在左侧和右侧有一个插槽,中间有一个插槽)-页面开始和北部基本相同。您需要的是带有一列的
GridLayout
FlowLayout
。也可以使用BoxLayout
GridBagLayout
-有关更多信息,请参阅details@reddit_10你是否将
contentPane
设置为你的框架?@ReşitDönük omg我没有注意到这一点。谢谢你。然后,约束是没有必要的。添加如下面板:
add(panel1)我做了,检查代码,我更新了帖子。非常感谢。