如何在SWT.CHECK表中直观地禁用复选框?

时间:2014-10-26 02:05:22

标签: java checkbox swt

如何直观地禁用SWT.CHECK表中的复选框?

我知道SWT无法单独禁用每个表列的复选框,但我设法捕获每个CHECK事件以立即取消选中该复选框。另外,我将列的文本灰显,表示其禁用状态。即使无法再检查该复选框,它仍会在视觉上保持启用状态。这是困扰我这个解决方法的最后一点。

是否有任何黑客可以删除,禁用,隐藏或透支复选框?我设法在列中自定义绘制图像,但在下显示复选框,因此我驳回了这种方法。

myTable.addListener(SWT.Selection, new Listener() {
  public void handleEvent(Event event) {
     logger.debug("Selection event fired.");

     if (event.detail == SWT.CHECK) {
        logger.debug("Item was checked.");

        if (null != event.item && null != event.item.getData()) {
           MyDataModel myModel = (MyDataModel)event.item.getData();
           logger.debug("Got MyDataModel object.");

           if (myModel.isDone()) {
              acknowledgmentsTable.table.setRedraw(false);

              ((TableItem)event.item).setChecked(false);
              logger.debug("Unchecked item.");

              // TODO: How to visually disable checkbox?

              acknowledgmentsTable.table.setRedraw(true);                           
           }           
        }
     }
  }
});

0 个答案:

没有答案