0
這是一個更簡單的問題。對話框 - 在不創建新對話框的情況下打開一個關閉的對話框
private static AplotBaseDialog dlg;
public Object execute(final ExecutionEvent event) throws ExecutionException {
if (dlg == null){
try {
Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event).getShell();
dlg = new AplotBaseDialog(shell, session);
}
catch {
}
dlg.open();
return null;
}
好吧,上面的代碼檢查,看看dlg是否爲空。如果它爲空,則創建一個新的對話框。 然後打開對話框。
這適用於dlg爲空的情況。但是,如果dlg不爲null,則會在dlg.open()行發生錯誤。 錯誤指向這個代碼在對話框類
@Override
protected Control createContents(Composite parent) {
Control contents = super.createContents(parent); <==== Right Here
setTitle("Title");
setMessage("Message");
if (image != null) {
setTitleImage(image);
}
return contents;
}
所以我的問題是我怎麼能打開的對話框時,DLG!= NULL?
EDIT 在AplotBaseDialog
在AplotDialogHandlerdlg.open();
添加一些錯誤消息的
線110
Control contents = super.createContents(parent);
線
如果'dlg'不是'null',那麼您的代碼將不會執行任何操作,因爲您檢查了'null'。此外,發佈錯誤。我們不是通靈;) – Baz
我會發布錯誤。用戶可以關閉dailog框,但主應用程序外殼仍然有效。這樣用戶可以關閉我的應用程序對話框,以便他們可以輕鬆使用主應用程序的GUI。當他們準備再次使用我的應用程序時,他們再次單擊該菜單,並打開對話框,其中包含他們之前在會話中添加的數據 – jkteater