我正在尝试配置一个对话框窗口,如下所示:
@Override
protected Control createDialogArea(Composite parent) {
GridLayout dialogAreaLayout = new GridLayout();
dialogAreaLayout.numColumns = 2;
parent.setLayout(dialogAreaLayout);
GridData gridData = new GridData();
gridData.grabExcessHorizontalSpace = true;
gridData.horizontalAlignment = GridData.FILL;
gridData.minimumWidth = 300;
// the label in the first row should span across both columns
gridData.horizontalSpan = 2;
Label headlineLabel = new Label(parent, SWT.NONE);
headlineLabel.setText("example test");
headlineLabel.setLayoutData(gridData);
// the rest should be ordered in two columns
gridData.horizontalSpan = 1;
companyLabel = new Label(parent, SWT.NONE);
companyLabel("company");
companyTextfield = new Text(parent, SWT.BORDER);
companyTextfield(gridData);
...
我想要完成的是第一行中的一个标签,该标签跨越两列,并且以下字段每行成对排序。我得到的结果是,标签(应该留在第二行)就在第一行,就像标签不会跨越两列一样。有人能看到我做错了什么吗?
再次感谢!
最佳答案
将layoutData 设置为headlineLabel 后,您将horizontalSpan 设置为1。您需要为每个SWT 小部件创建一个新的LayoutData 对象。设置后无法重复使用。
关于swt - SWT GridLayout 中的horizontalSpan 不跨越,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12128235/