如何设置 JAVA 中按钮的大小?

how to set the size for the button in JAVA?

我无法在下面的代码中设置按钮的大小。如果我将 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;
}

您不能将布局与 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 中,您还可以使用 DialogconvertHorizontalDLUsToPixelsconvertWidthInCharsToPixels 方法来计算宽度。例如:

data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);

您可以以类似的方式使用 heightHint 设置高度。