GridBagLayout中有多个JPanel

时间:2012-12-02 16:19:44

标签: java swing layout gridbaglayout

您好请参阅附图,我是编码界面,有三个JPanels,我正在使用GridBagLayout,我已经阅读了一些很好的教程并得到了一些了解,但我需要你有关放置2个JPanels的指导如图所示并排。

例如,如果我执行frame.add(leftpanel);,那么JFrame上只有一个面板..如何将它对齐在JFrame的一半上,这样当我{J} frame.add(panelright);时,它会被添加到右边sid,

请指导我执行图片enter image description here

中显示的功能

我可以处理1个JPanel和所有组件,但不知道可以处理多于1个,

3 个答案:

答案 0 :(得分:3)

我认为在您的情况下BorderLayout会更有用。试着阅读here

在这种情况下,你可以将你的面板添加到东南偏西或中心,这将比GridBag好得多。

答案 1 :(得分:2)

您需要使用GridBagConstraints指定位置和其他设置。 例如,你可以这样做:

GridBagConstraints constraints = new GridBagConstraints();
constraints.gridx = 0;
constraints.gridy = 0;
constraints.fill = GridBagConstraints.BOTH;

frame.add(leftPanel, constraints);
constraints.gridx = 1;
frame.add(panelright, constraints);

constraints.gridx = 0;
constraints.gridy = 1;
constraints.gridwidth = 2;
frame.add(bottomPanel, constraints);

GridBagConstraints.gridx和GridBagConstraints.gridy确定此元素的行和列。 fill告诉布局水平和垂直使用所有可用空间。 如果要设置一个单元格将使用相对于其他单元格具有一定比例的空间,则可以使用weightx和weighty字段。

答案 2 :(得分:2)

还要考虑两个JSplitPane个实例。最外面的窗格在顶部和底部之间有VERTICAL_SPLIT。外部窗格的顶部将包含另一个JSplitPane,左右之间有HORIZONTAL_SPLIT