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