我使用以下

org.eclipse.jface.viewers.CheckboxCellEditor.CheckboxCellEditor(Composite parent)

我创建与cellEditors表查看器和执行以下操作

CellEditor[] editors = new CellEditor[columnNames.length];
editors[7] = new CheckboxCellEditor(table);

我有具有以下

一个CellModifier
public Object getValue(Object element, String property) {
        Object result = null;
        ...
        result = Boolean.valueOf(task.isDfRequested());
        return result;
}

 public void modify(Object element, String property, Object value) {
       item.isSelected(((Boolean)value).booleanValue());
}

最后,我有具有以下

一个LabelProvider
 public String getColumnText(Object element, int columnIndex) {
        String result = "";
        try { 
            result = Boolean.toString(item.isSelected());
        } catch (Exception ex) { } 

        break;

不过,在我的UI而不是一个复选框,我有话真或假的&&点击它会导致开关状态或真或假。为什么我没有一个复选框??

任何想法
有帮助吗?

解决方案 3

什么我决定做的是只实现别人已经用肮脏的黑客。

创建的复选框两个图像,一个检查了其它未选中。切换基于布尔两者之间的状态。

它并不完美,但现在它能够完成任务。

其他提示

我已经搜索在CheckboxCellEditor类的源代码,并在关联到CellEditor中的控制是在createControl(Composite parent)方法创建的构造函数。这种方法是在CellEditor类抽象和它的实现像这样在CheckboxCellEditor

protected Control createControl(Composite parent) {
    return null;
}

所以不会创建一个控制,这就是为什么你没有看到的复选框。在类的文档可以读:

  

请注意,此实现简单地   假货,并没有不产生任何   新的控制。的仅仅激活   这个编辑器意味着该值   复选框正在被触发   终端用户;听者方法   applyEditorValue立即调用   到信号的变化。

我解决了这个使用具有肯定和否定项的ComboBoxCellEditor。

问候。

好了,我不知道如何SWT工作或者是什么成分,你甚至谈论。

但我知道,使用秋千时,你可以定制编辑器JTable中的一列。如果你不告诉表格类数据的列,则数据的toString()方法被调用。但是,如果你告诉表布尔数据显示在列,则表将使用复选框编辑器。

听起来像是一个类似的症状,但我不知道你的具体的解决方案。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top