我正在尝试使用GridBagLayout . 我需要一个垂直和水平居中的JLabel - 这很容易,我甚至不需要创建任何GridBagConstraints . 我还想把JButton放在右下角,当我尝试这样做时,我的中心面板向左移动或按钮向上移动 .
EXPECTING GETTING THIS OR THIS
+-----------+ +-----------+ +-----------+
| | | | | |
| | | | | |
| | | | | |
| +---+ | | +---+ | | +---+ |
| | | | | | | | | | | |
| +---+ | | +---+ | | +---++---+|
| | | | | | ||
| | | | | +---+|
| +---+ | +---+ | |
| | | | | | | |
+-------+---+ +-------+---+ +-----------+
bigPanel = new JPanel();
bigPanel.setPreferredSize(new Dimension(320, 640));
bigPanel.setLayout(new GridBagLayout());
label = new JLabel();
label.setPreferredSize(new Dimension(100,95));
button = new JButton();
button.setPreferredSize(new Dimension(100,25));
GridBagConstraints c = new GridBagConstraints();
c.anchor = GridBagConstraints.CENTER;
bigPanel.add(label, c);
c.anchor = GridBagConstraints.LAST_LINE_END;
bigPanel.add(button, c);
我也试图使用这里描述的其他约束http://docs.oracle.com/javase/tutorial/uiswing/layout/gridbag.html,但每次出错 .
1 回答
anchor
如果组件未填充单元格,则在其单元格内设置组件位置 .您尚未定义布局的网格 . 默认行为是从左到右添加组件 .
以下是使用
GridBagLayout
实现所需内容的示例 . 标签和按钮放在同一个单元格中,填充面板 .