1
我有一个自定义的JFace对话框(称为PropertyDialog),它扩展了FormDialog。我想在打开PropertyryDialog时立即打开一个模态消息对话框,向用户显示消息。在另一个模态JFace对话框上打开模态JFace对话框
这怎么可能完成?我必须重写open()
方法吗?请注意,要求PropertyDialog.open()
在按钮栏上按下按钮之前不会返回。
感谢您的帮助。
我有一个自定义的JFace对话框(称为PropertyDialog),它扩展了FormDialog。我想在打开PropertyryDialog时立即打开一个模态消息对话框,向用户显示消息。在另一个模态JFace对话框上打开模态JFace对话框
这怎么可能完成?我必须重写open()
方法吗?请注意,要求PropertyDialog.open()
在按钮栏上按下按钮之前不会返回。
感谢您的帮助。
您可以通过在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
,这样直到已经显示父对话框不显示对话框。
真棒回复!我从来不知道!这正是我所期待的!非常感谢您的帮助! – Jayant
您可以使用'TitleAreaDialog',在对话框的顶部有一个错误消息的空间,因此您不需要另一个对话框。 –
@ greg-449感谢您的建议!不幸的是,我无法控制属性对话框扩展的类型,因为它不直接扩展它,而是通过一系列其他类提供一些额外的功能。 此外,它已经在这个层次结构链中扩展了'FormDialog',所以将它改为'TitleAreaDialog'是不可能的。因此,我想打开一个'MessageDialog'。 – Jayant