5 JPanels的位置

时间:2016-04-18 14:28:30

标签: java jpanel border-layout

**我是Java新手!

我有5个JPanels,我希望它们像enter image description here

那样放置

这是我到目前为止所做的:

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,???)?

1 个答案:

答案 0 :(得分:0)

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

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

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

frame.setContentPane(contenPane);