RCP TableViewer获取CheckBox 状态

本文详细介绍了如何在Java中使用JFaceTableViewer实现带有复选框的表格组件,包括设置显示方式、监听选择事件及处理复选操作。通过实例代码展示了如何在表格项上添加复选框,并根据用户操作更新数据结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码示例:

  1. viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL 
  2.                 | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.CHECK); 
  3.  
  4. // 设置表格显示方式。 
  5. table = viewer.getTable(); 
  6. table.setHeaderVisible(true); 
  7. table.setLinesVisible(true); 
  8.  
  9. table.addListener(SWT.Selection, new Listener() { 
  10.             @Override 
  11.             public void handleEvent(Event event) { 
  12.                 if (event.detail == SWT.CHECK) { 
  13.                     TableItem tableItem = (TableItem) event.item; 
  14.                     PowerLineInfo checkedItem = (PowerLineInfo) (tableItem 
  15.                             .getData()); 
  16.  
  17.                     checkedItem.setShowed(true); 
  18.  
  19.                     // 检查CheckBox点击状态。 
  20.                     if (tableItem.getChecked()) { 
  21.                         System.out.println("This click is check!"); 
  22.                         // 保存当前被选择线路。 
  23.                         LinesManager.getInstance().addNeedShowLine(checkedItem); 
  24.                     } else
  25.                         System.out.println("This click is uncheck!"); 
  26.                         // 清除当前被选择线路。 
  27.                         LinesManager.getInstance().removeNeedShowLine( 
  28.                                 checkedItem); 
  29.                     } 
  30.                 } 
  31.             } 
  32.         }); 
viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL
				| SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.CHECK);

// 设置表格显示方式。
table = viewer.getTable();
table.setHeaderVisible(true);
table.setLinesVisible(true);

table.addListener(SWT.Selection, new Listener() {
			@Override
			public void handleEvent(Event event) {
				if (event.detail == SWT.CHECK) {
					TableItem tableItem = (TableItem) event.item;
					PowerLineInfo checkedItem = (PowerLineInfo) (tableItem
							.getData());

					checkedItem.setShowed(true);

					// 检查CheckBox点击状态。
					if (tableItem.getChecked()) {
						System.out.println("This click is check!");
						// 保存当前被选择线路。
						LinesManager.getInstance().addNeedShowLine(checkedItem);
					} else {
						System.out.println("This click is uncheck!");
						// 清除当前被选择线路。
						LinesManager.getInstance().removeNeedShowLine(
								checkedItem);
					}
				}
			}
		});

参考资料:

1、JFace TableViewer with Checkbox, catch/diff the check and selected event

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值