[英]How listen for check box in JFace Table Viewer
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提前致谢, 马努
Take a look at class CheckboxTableViewer
derived from TableViewer
which simplifies the use of a TableViewer with the SWT.CHECK
style.看看 class
CheckboxTableViewer
派生自TableViewer
,它简化了具有SWT.CHECK
样式的 TableViewer 的使用。
Add an implementaion of ICheckStateListener
to your CheckboxTableViewer
via addCheckStateListener()
.通过
addCheckStateListener()
将ICheckStateListener
的实现添加到CheckboxTableViewer
。 The only method you have to implement is checkStateChanged(CheckStateChangedEvent event)
where event
contains all necessary information about the state change.您必须实现的唯一方法是
checkStateChanged(CheckStateChangedEvent event)
,其中event
包含有关 state 更改的所有必要信息。
If you need only one column you can create a CheckboxTableViewer like this:如果您只需要一列,您可以像这样创建 CheckboxTableViewer:
CheckboxTableViewer myTableViewer = CheckboxTableViewer.newCheckList(parent, style);
Expanding @Tonny's answer, here's the listener you would use:扩展@Tonny 的答案,这是您将使用的侦听器:
tableViewer.getTable().addListener(SWT.Selection, (e) -> {
if (e.detail == SWT.CHECK) {
MyModel modelObj = (MyModel) e.item.getData();
TableItem item = (TableItem) e.item;
System.out.println("ITEM CHECKED -> " + item.getChecked());
}
});
You see, you can cast the widget to TableItem
to understand whether the user has either checked or unchecked the checkbox.您会看到,您可以将小部件强制转换为
TableItem
以了解用户是否选中或取消选中该复选框。
Still, as @Claimos' says, I would just use a JFace CheckboxTableViewer
.不过,正如@Claimos 所说,我只会使用 JFace
CheckboxTableViewer
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.