[英]Close JFace window on initialization
我有一個帶有文件列表的 JFace 應用程序。 當用戶單擊列表中的文件時,將打開子 window。 子 window 自動將文件內容加載到 Text 小部件中。
加載文件內容可能會失敗。 我可以檢測到這種情況,我很樂意在子 window 顯示在屏幕上之前關閉它。
我試圖在子 window 的覆蓋protected Control createContents(Composite parent)
方法的末尾調用close()
。 但是我在 JFace 庫的某處遇到了 null 異常:
Exception occurred java.lang.NullPointerException
at org.eclipse.jface.window.Window.initializeBounds(Window.java:758)
at org.eclipse.jface.window.Window.create(Window.java:435)
at org.eclipse.jface.window.Window.open(Window.java:790)
用初始值初始化 window 小部件的正確位置在哪里? 理想情況下,我認為它應該滿足以下條件:
close()
應該正確關閉 window。 如果Window
object 還沒有 window Z2591C98B70119FE62481 並open()
它,則創建一個新方法。 當調用createContents(Composite parent)
時,它在它的create()
方法中,以及配置一些視覺細節的其他方法。 這就是initializeBounds()
方法,它依賴於已經存在的 shell。 如果你關閉它,go,你得到了例外。
也許您想覆蓋open()
方法本身:
public int open() {
if (!condition)
return super.open(); // as usual
else
return CANCEL;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.