我无法在下面的代码中设置按钮的大小。如果我将 b.setSize 设置为(2000,2000),则不会发生任何变化。你有什么建议我做错了或忽略了吗? 最好的问候
克里斯
protected Control createDialogArea(Composite parent) {
Composite container = (Composite) super.createDialogArea(parent);
GridLayout containerLayout = new GridLayout();
GridData containerLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
container.setLayout(containerLayout);
container.setLayoutData(containerLayoutData);
Tag t = new Tag("Action", 'm');
Button b = new Button(container, SWT.PUSH);
GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
b.setLayoutData(new GridData(SWT.BEGINNING ,SWT.CENTER, false,false));
b.setText("Movie");
Button button2 = new Button(container, SWT.PUSH); button2.setLayoutData(newGridData(SWT.BEGINNING,SWT.CENTER,false,false));
button2.setText("Performer");
return container;
}
答案 0 :(得分:1)
您无法将布局与setSize
混合在一起 - 布局会使用其计算的尺寸覆盖尺寸。
而是为按钮布局指定宽度提示:
Button b = new Button(container, SWT.PUSH);
GridData data = new GridData(SWT.BEGINNING, SWT.CENTER, false, false);
data.widthHint = 100; // Width in pixels
b.setLayoutData(data);
b.setText("Movie");
由于您的代码位于JFace Dialog
中,因此您还可以使用convertHorizontalDLUsToPixels
的{{1}}或convertWidthInCharsToPixels
方法来计算宽度。例如:
Dialog
您可以使用data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
以类似的方式设置身高。