jface - 无法在 JFace 对话框的 ListViewer 中获取所选项目
问题描述
我使用 Windows Builder 创建了一个从 JFace Dialog 继承的对话框类。在那,我添加了一些控件,包括一个按钮和一个 JFace ListViewer。在widgetSelected()
按钮的功能中,我可以在 ListViewer 中取出所选项目。但是在 `okPressed() 中,我无法得到这个。我不知道为什么。你能帮助我吗?
谢谢!
解决方案
如果您想访问其中的 UI 元素,okPressed
则必须在调用之前这样做,super.okPressed()
因为这将关闭对话框并释放控件。所以像:
@Override
protected void okPressed()
{
IStructuredSelection sel = viewer.getStructuredSelection();
// TODO deal with selection
// Call super.okPressed() last
super.okPressed();
}
或者,当您widgetSelected
被调用时保存选择。
推荐阅读
- linux - Linux中是否有任何方法可以检查目录树是否已更改?
- c# - WNetOpenEnum 在根级别之后不返回任何内容
- python - 检查列表列表中的列表元素并返回子列表
- firebase - 如何使用uid删除firebase用户?
- search - 二分查找哪个更快?
- python - 使用 gunicorn 异步运行长轮询烧瓶应用程序
- android-studio - android gradle 插件版本栏为空
- javascript - 使用 Angular 8 的最佳方法是什么,以便在输入中我只能输入文本?
- c# - 如何通过 C#/UPW 应用在 Surface Go 2 上使用 NFC 读卡器读取 MIFARE 卡?
- c# - 一个应用程序在另一个应用程序中遇到请求,但信息为空