无法在 JFace 对话框的 ListViewer 中获取所选项目
Cannot get the selected item in a ListViewer in a JFace Dialog
我使用 Windows Builder 创建了一个从 JFace Dialog 继承的对话框 class。在那里,我添加了一些控件,包括一个按钮和一个 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
时保存选择。
我使用 Windows Builder 创建了一个从 JFace Dialog 继承的对话框 class。在那里,我添加了一些控件,包括一个按钮和一个 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
时保存选择。