1

您好,请参阅附图,我正在使用具有三个 JPanel 的编码界面 GridBagLayout ,我已经阅读了一些很好的教程并获得了一些理解,但我需要您的指导,如给定的图片中并排放置 2 个 JPanel。

例如,如果我这样做了frame.add(leftpanel); ,然后 JFrame 上只有一个面板 .. 如何将其左对齐在 JFrame 的一半上,以便当我这样做时frame.add(panelright);将其添加到右侧 sid,

请指导我执行图片中显示的功能,在此处输入图像描述

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

4

3 回答 3

3

我认为在你的情况下BorderLayout会更有用。尝试在这里阅读。

您可以在东南西北或中心添加面板,在这种情况下它会比 GridBag 好得多。

于 2012-12-02T16:29:21.127 回答
3

您需要使用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 字段。

于 2012-12-02T16:32:31.720 回答
2

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

于 2012-12-02T17:37:47.237 回答