java - TableViewer 单元格编辑器不工作 - SWT

标签 java eclipse eclipse-plugin swt jface

我正在尝试在 Eclipse SWT 中实现可编辑的表查看器。我认为到目前为止我已经完成了所有操作,问题是该表不可编辑 - 如果我单击任何行,则不会发生任何情况。

我已经为我的所有列注册了一些 CellEditor:

CellEditor[] editors = new CellEditor[columnNames.length]; 
editors[0] = new TextCellEditor(table);
//do the above for all columns
tableViewer.setCellEditors(editors);

然后我为我的表格指定一个单元格修饰符:

tableViewer.setCellModifier(new CellModifier(this));

CellModifier 类如下所示:

public class CellModifier implements ICellModifier{

private DBStructureView dbView;

public CellModifier(DBStructureView view){
    super();
    this.dbView = view;
}

@Override
public boolean canModify(Object element, String property) {
    return true;
}

@Override
public Object getValue(Object element, String property) {
    int columnIndex = dbView.getColumnNames().indexOf(property);

    Object result = null;
    AttributeNode node = (AttributeNode) element;

    switch(columnIndex){
    case 0://row id
            result = node.getRow();
    case 1://name
            result = node.getName();
    case 2://value
            result = node.getValue();
    default:
            result = "unknown";
    }

    System.out.println(result);
    return result;
}

@Override
public void modify(Object element, String property, Object value) {
    int columnIndex = dbView.getColumnNames().indexOf(property);

    TableItem item = (TableItem) element;
    AttributeNode node = (AttributeNode)item.getData();
    String valueString;

    switch(columnIndex){
    case 0:
        valueString = ((String) value).trim();
        node.setRow(valueString);
        break;
    case 1: 
        valueString = ((String) value).trim();
        node.setName(valueString);
        break;
    case 2:
        valueString = ((String) value).trim();
        node.setValue(valueString);
        break;
    default:
        break;
    }   

}
}

完成这一切后,还会出现什么问题吗?

提前致谢!

最佳答案

我发现了这个错误,似乎我忘记设置列的属性。我补充道:

tableViewer.setColumnProperties(columnNames);

现在一切正常,我可以编辑我的任何单元格!

关于java - TableViewer 单元格编辑器不工作 - SWT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6363825/

相关文章:

java - 读取环境变量失败

java - 整数乘以 0.5 时四舍五入

java - XCode 的代码感知可以在项目之外工作吗?

java - Eclipse Neon w/Tomcat 9(新 Servlet)HTTP 状态 404 – 未找到

java - 如何以新形式导入图像

java - Eclipse:编译依赖应用程序时导出 JAR

java - 在包内创建java文件

java - 它的名字是什么?如何在 Java 中计算?

java - 使用文件写入器线程初始化的缓冲写入器写入文件是否安全?

java - 如果我已经安装了maven eclipse插件,还可以安装maven吗?