如何在JFrame中组织我的JPanel?

时间:2016-06-15 13:42:14

标签: java swing layout-manager grouplayout

我在JPanel内组织JFrame时遇到问题。

我有3个JPanel,需要按如下方式对其进行整理:

panel1 panel2

panel__3333333

但是,只能按如下方式水平对齐panel1panel2

 groupLayout.setHorizontalGroup(groupLayout.createSequentialGroup()
        .addComponent(PANEL1)
        .addComponent(PANEL2));
    groupLayout.setVerticalGroup(groupLayout.createParallelGroup()
        .addComponent(PANEL1)
        .addComponent(PANEL2));  

感谢。

2 个答案:

答案 0 :(得分:3)

实现此目的的最简单方法是将JPanel存放在其他JPanel中。

以下是您可能会做的一个示例:

JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//this is the main JPanel that will house all of your child JPanels
JPanel mainPanel= (JPanel)frame.getContentPane();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
//this JPanel will house "panel1" and "panel2" on top and will go inside the main panel
JPanel topPanel = new JPanel();
topPanel.setLayout(new BoxLayout(topPanel, BoxLayout.X_AXIS));

//add panel1 and panel2 to topPanel here

mainPanel.add(topPanel);

//add panel3 to mainPanel here

frame.pack();
frame.setVisible(true);

有很多不同的方法,但我发现这是最简单的方法。希望这有帮助!

答案 1 :(得分:0)

我认为你应该使用GridBagLayout而不是grouplayout。 它符合您的需求

See the oracle doc on gridbag layout here