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

时间:2018-02-27 14:27:26

标签: java button swt

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

1 个答案:

答案 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); 以类似的方式设置身高。