Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在TableViewer中将图像导入单元格?_Java_Jface - Fatal编程技术网

Java 如何在TableViewer中将图像导入单元格?

Java 如何在TableViewer中将图像导入单元格?,java,jface,Java,Jface,我创建了一个TableViewer(jface) 在某些情况下,我希望隐藏图像。(控制图像的可视性) 逻辑在不同的类中完成,而不是在tableViewer中完成。 我怎样才能让细胞和细胞控制图像的可见性。(我知道单元格的名称,它始终是tableviewer中的第一个单元格) //gridViewer类 public class MyGridViewer extends TableViewer { public MyGridViewer (Composite parent) {

我创建了一个TableViewer(jface)

在某些情况下,我希望隐藏图像。(控制图像的可视性) 逻辑在不同的类中完成,而不是在tableViewer中完成。 我怎样才能让细胞和细胞控制图像的可见性。(我知道单元格的名称,它始终是tableviewer中的第一个单元格) //gridViewer类

     public class MyGridViewer extends TableViewer {
     public MyGridViewer (Composite parent) {
    super(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);

    final Table table = this.getTable();
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    this.setContentProvider(new MyModelProvider());

        }
      }


     @Override
    protected void inputChanged(Object input, Object oldInput) {

    removeColumn();



        tableCol = new TableViewerColumn(this, SWT.NONE);
        column = tableCol.getColumn();
        column.setText(dataColumnHeader.getName());
        column.setWidth(100);
        column.setResizable(true);
        column.setMoveable(true);
        tableCol.setLabelProvider(new ColumnLabelProvider() {
            @Override
            public String getText(Object element) {
                DataRow r = (DataRow) element;
                DataCell c = r.getDataCellByName(dataColumnHeader.getName());
                if (c != null && c.getValue() != null) {
                    return c.getValue().toString();
                }
                return null;
            }
             @Override
             public Image getImage(Object element) {
                   //Add my imgae
             }
        });



     editingSupport = new StringCellEditingSupport(this, dataColumnHeader);
     tableCol.setEditingSupport(editingSupport);
        super.inputChanged(input, oldInput);

}

ColumnLabelProvider
有一个类似于
getText
方法的
getImage
方法:

public Image getImage(Object element);

您好,我将我的逻辑添加到tableCol.setLabelProvider()中,并在getImage上进行了覆盖。现在的问题是,在某些情况下,我希望在代码中删除图像(visible=false)。如何获取单元格并更新图像?请调用
TableViewer.update(object)
使查看器更新对象(对象是内容提供商返回的值)。您可能需要使用
TableViewer.setUseHashlookup(true)
我可以在不调用更新的情况下获取值吗?如果我将调用更新,我可以移动任何参数吗?对象是指行、单元格还是列?如果我调用更新,我可以移动任何参数吗?我是指对象旁边的其他参数
TableViewer。update
将调用标签提供程序以获取更新信息。