如何监听 JFace Table Viewer 中的复选框
我正在使用带有复选框的表查看器,如下所示:
final TableViewer legendViewer = new TableViewer(parent, SWT.CHECK);
在此查看器中侦听复选框选择/取消选择的解决方案是什么?
提前致谢, 马努
I am using a Table Viewer with check boxes as following:
final TableViewer legendViewer = new TableViewer(parent, SWT.CHECK);
What is THE solution to listen to check boxes selection/unselection in this viewer ?
Thanks in advance,
Manu
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
看一下从
TableViewer
派生的CheckboxTableViewer
类,它简化了具有SWT.CHECK
样式的 TableViewer 的使用。通过
addCheckStateListener()
将ICheckStateListener
的实现添加到您的CheckboxTableViewer
。您必须实现的唯一方法是checkStateChanged(CheckStateChangedEvent event)
,其中event
包含有关状态更改的所有必要信息。如果您只需要一列,您可以创建一个 CheckboxTableViewer,如下所示:
Take a look at class
CheckboxTableViewer
derived fromTableViewer
which simplifies the use of a TableViewer with theSWT.CHECK
style.Add an implementaion of
ICheckStateListener
to yourCheckboxTableViewer
viaaddCheckStateListener()
. The only method you have to implement ischeckStateChanged(CheckStateChangedEvent event)
whereevent
contains all necessary information about the state change.If you need only one column you can create a CheckboxTableViewer like this:
您侦听
Table
上的SWT.Selection
事件并检查event.detail == SWT.CHECK
...请参阅此 示例...
You listen for
SWT.Selection
events on theTable
and check forevent.detail == SWT.CHECK
...See this example for actual code....
扩展@Tonny的答案,这是您将使用的侦听器:
您看,您可以将小部件转换为
TableItem
以了解用户是否选中或取消选中该复选框。不过,正如 @Claimos 所说,我只会使用 JFace
CheckboxTableViewer
。Expanding @Tonny's answer, here's the listener you would use:
You see, you can cast the widget to
TableItem
to understand whether the user has either checked or unchecked the checkbox.Still, as @Claimos' says, I would just use a JFace
CheckboxTableViewer
.