在另一个模态JFace对话框的顶部打开模态JFace对话框

时间:2013-09-21 13:25:43

标签: java eclipse swt modal-dialog jface

我有一个自定义JFace对话框(称为PropertyDialog),它扩展了FormDialog。我想在打开后立即在PropertryDialog上打开一个模态消息对话框,向用户显示一条消息。

如何实现这一目标?我是否必须覆盖open()方法?请注意,在按钮栏上按下按钮之前,要求PropertyDialog.open()不会返回。

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

您可以通过在createContents方法的末尾显示消息来完成此操作,如下所示:

  @Override
  protected Control createContents(final Composite parent)
  {
    final Control control = super.createContents(parent);

    parent.getDisplay().asyncExec(new Runnable() {
      public void run()
      {
        MessageDialog.openInformation(getShell(), "title", "message");
      }
    });

    return control;
  }

您需要使用Display.asyncExec,以便在显示父对话框之前不会显示该对话框。