【发布时间】:2018-11-02 04:11:30
【问题描述】:
我使用 Windows Builder 创建了一个继承自 JFace Dialog 的对话框类。在那,我添加了一些控件,包括一个按钮和一个 JFace ListViewer。在按钮的widgetSelected() 函数中,我可以在ListViewer 中取出选中的项目。但是在 `okPressed() 中,我无法得到这个。我不知道为什么。你能帮助我吗?
谢谢!
【问题讨论】:
我使用 Windows Builder 创建了一个继承自 JFace Dialog 的对话框类。在那,我添加了一些控件,包括一个按钮和一个 JFace ListViewer。在按钮的widgetSelected() 函数中,我可以在ListViewer 中取出选中的项目。但是在 `okPressed() 中,我无法得到这个。我不知道为什么。你能帮助我吗?
谢谢!
【问题讨论】:
如果您想访问 okPressed 中的 UI 元素,您必须在调用 super.okPressed() 之前这样做,因为这将关闭对话框并释放控件。所以像:
@Override
protected void okPressed()
{
IStructuredSelection sel = viewer.getStructuredSelection();
// TODO deal with selection
// Call super.okPressed() last
super.okPressed();
}
当您的 widgetSelected 被调用时,或者保存选择。
【讨论】: