2
我有一个JFace应用程序和一个文件列表。当用户点击列表中的文件时,将打开一个子窗口。子窗口自动将文件内容加载到文本窗口小部件中。关闭初始化JFace窗口
加载文件内容可能会失败。我可以检测到这种情况,我很乐意在屏幕上显示之前关闭子窗口。
我试着在子窗口的覆盖protected Control createContents(Composite parent)
方法结束时调用close()
。但我得到了在图书馆的JFace某处空例外:
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)
哪里是初始化与初始值的窗口小部件正确的地方吗?理想情况下,我觉得它应该符合以下条件:
- 小工具应该已经由框架创建。
- 该窗口应该不可见。
close()
如果需要应该正确关闭窗口。
感谢您的想法。我现在无法检查。但是,似乎我必须在'if'之前放置初始化代码。因此,初始化代码将无法访问小部件,因为小部件是在'super.open()'执行时创建的。看来,我必须将初始化代码分成两部分:1)不依赖于小部件,可能会失败; 2)对小部件的依赖,绝不能失败。 – borisstr