1

如何使用 a (见此处Button)将 a (垂直)定位在中心?使用:FormLayout

final Button button = new Button(shell, SWT.NONE);
button.setText("Button");

final FormData layoutData = new FormData();
layoutData.top = new FormAttachment(50);
layoutData.left = new FormAttachment(0);
layoutData.right = new FormAttachment(100);
button.setLayoutData(layoutData);

我最终得到

在此处输入图像描述

这并不奇怪,因为我告诉它把按钮的顶部放在中间(layoutData.top = new FormAttachment(50);)。我怎样才能将按钮的中心放在中心?

4

1 回答 1

3

您可以使用构造函数指定偏移量:

new FormAttachment(int numerator, int offset)

看起来像这样:

在此处输入图像描述

您可以使用以下方法计算偏移量:

final Button button = new Button(shell, SWT.NONE);
button.setText("Button");

final FormData layoutData = new FormData();

/* Compute the offset */
int offset = -button.computeSize(SWT.DEFAULT, SWT.DEFAULT).y / 2;

/* Create the FormAttachment */
layoutData.top = new FormAttachment(50, offset);
layoutData.left = new FormAttachment(0);
layoutData.right = new FormAttachment(100);
button.setLayoutData(layoutData);
于 2013-07-17T16:44:02.923 回答