【问题标题】:How to add buttons to the JFace ErrorDialog如何向 JFace ErrorDialog 添加按钮
【发布时间】:2015-04-26 07:54:43
【问题描述】:

我正在尝试在此弹出对话框中添加一个“取消”按钮,该对话框基本上只是为用户提供一些信息并允许他们点击是或查看详细信息。问题是没有取消按钮,我想添加一个。

对话框是一个 JFace ErrorDialog,它使用预制的 MultiStatus 来显示错误消息。对话框打开并给出确定按钮或取消按钮。无论如何直接操纵对话框如何创建按钮或我可以用来改变它的外观的其他方法?任何帮助表示赞赏!

if (ErrorDialog.openError(shell, 
    Messages.ConsistencyAction_confirm_dialog_title, null,
    multiStatus, IStatus.WARNING) != Window.OK) {
    return;
}

这是我要更改的对话框。这基本上是检查以确保有人按下确定,如果他们不按下则您退出。您可以通过点击角落中的红色 X 来退出它,但有一个按钮会更容易混淆。

【问题讨论】:

  • 您能否向我们展示您用于显示对话框的代码,因为目前尚不清楚您正在使用哪个对话框。
  • 添加了我说的代码

标签: java eclipse-plugin jface


【解决方案1】:

您可以扩展ErrorDialog 类,以便覆盖createButtonsForButtonBar 方法。

例如,这是来自 Eclipse p2 安装插件:

public class OkCancelErrorDialog extends ErrorDialog {

    public OkCancelErrorDialog(Shell parentShell, String dialogTitle, String message, IStatus status, int displayMask) {
        super(parentShell, dialogTitle, message, status, displayMask);
    }

    @Override
    protected void createButtonsForButtonBar(Composite parent) {
        // create OK, Cancel and Details buttons
        createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
        createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, true);
        createDetailsButton(parent);
    }
}

这样您就不能使用静态的ErrorDialog.openError 方法,而是必须执行以下操作:

OkCancelErrorDialog dialog = new OkCancelErrorDialog(shell, Messages.ConsistencyAction_confirm_dialog_title, null, multiStatus, IStatus.WARNING);

【讨论】:

  • 谢谢!像魅力一样工作!
猜你喜欢
  • 1970-01-01
  • 2014-02-19
  • 2021-04-19
  • 2015-03-29
  • 2012-11-09
  • 2011-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多