我有一个具有此布局的面板:
在图标前面有一个带有以下labelConstraints
的JLabel,图标上有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中(因为我想稍后更改图标)。
答案 0 :(得分:2)
lastConstraints.anchor = GridBagConstraints.CENTER;
答案 1 :(得分:1)
最简单的方法是将标签放在标签上;您可以随时使用setIcon()
更改图标。或者,使用BoxLayout
对齐或GroupLayout.Alignment
。