从jface对话框中删除按钮栏

时间:2014-08-21 10:35:39

标签: dialog jface buttonbar

我想创建一个没有OK / Cancel按钮的对话框。我知道如果你覆盖createButton方法,这可以实现。

如果根本不需要按钮栏,您如何看待覆盖createButtonBar方法返回null?这样可以节省一些代码。

2 个答案:

答案 0 :(得分:3)

如果您为结果合成返回createButtonBar,则覆盖null会产生错误,因为Dialog代码期望它不为空。

您可以覆盖createButtonsForButtonBar而不创建任何按钮。看起来Dialog总是检查单个按钮是否存在。

您可以删除复合按钮使用的空间,如下所示:

@Override
protected void createButtonsForButtonBar(final Composite parent)
{ 
  GridLayout layout = (GridLayout)parent.getLayout();
  layout.marginHeight = 0;
}

答案 1 :(得分:0)

如果你想在对话框中只有一个“关闭”按钮,你可以这样做:

@Override
public void create() {
    super.create();
    getButton(IDialogConstants.OK_ID).setVisible(false);
    getButton(IDialogConstants.CANCEL_ID).setText("Close");
}