1

我有一个具有这种布局的面板:

在此处输入图像描述

图标前面有一个带有以下内容的 JLabel,labelConstraints并且图标lastConstraints在 JLabel 之后显示:

  GridBagConstraints lastConstraints = new GridBagConstraints();
  GridBagConstraints labelConstraints = new GridBagConstraints();

  lastConstraints.fill = GridBagConstraints.HORIZONTAL;
  lastConstraints.anchor = GridBagConstraints.NORTHWEST;
  lastConstraints.weightx = 1.0;
  lastConstraints.gridwidth = GridBagConstraints.REMAINDER;
  lastConstraints.insets = new Insets(8, 4, 8, 8);

  labelConstraints = (GridBagConstraints) lastConstraints.clone();
  labelConstraints.weightx = 0.0;
  labelConstraints.gridwidth = 1;

现在我想让图标(或 JLabel)相对于标签(或图标)居中,如下所示:

在此处输入图像描述

我怎样才能做到这一点?我不想将图标放入 JLabel 中,因为我需要将它放在自己的 JLabel 中(因为我想稍后更改图标)。

4

2 回答 2

2

你能试一下吗

lastConstraints.anchor = GridBagConstraints.CENTER;
于 2013-05-29T09:44:07.553 回答
1

最简单的方法是将图标放在标签上;您可以随时使用 更改图标setIcon()。或者,使用BoxLayout对齐或GroupLayout.Alignment.

于 2013-05-29T09:35:11.377 回答