2

使用noDefaultAndApplyButton()正在删除应用和恢复默认按钮,但我只需要删除恢复默认按钮。知道怎么做吗?

4

1 回答 1

5

调用noDefaultAndApplyButton()以抑制默认按钮并覆盖contributeButtons添加您自己的应用按钮的方法 - 您必须自己处理此按钮。

就像是:

  @Override
  protected void contributeButtons(final Composite parent)
  {
    final Button applyButton = new Button(parent, SWT.PUSH);
    applyButton.setText("Apply");

    final int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
    final GridData data = new GridData(SWT.FILL, SWT.CENTER, false, false);
    final Point minButtonSize = applyButton.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
    data.widthHint = Math.max(widthHint, minButtonSize.x);
    applyButton.setLayoutData(data);

    applyButton.addSelectionListener(new SelectionAdapter() {
      @Override
      public void widgetSelected(final SelectionEvent e) {
        performApply();
      }
    });

    final GridLayout layout = (GridLayout)parent.getLayout();
    layout.numColumns++;
  }

更新: Eclipse 4.5 (Mars) 中的 JFace 3.11 版添加了一个noDefaultButton()方法,该方法仅关闭“恢复默认值”按钮。

于 2013-08-29T08:29:27.893 回答