列中显示的文本未显示在单元格的正确位置

时间:2012-10-23 20:40:47

标签: java swt tableviewer

在我表格的第一列中,显示的值偏离左边缘。

实施例

enter image description here

注意日期值与ItemId值的偏移量

TableViewerColumn col = new TableViewerColumn(this , SWT.NONE);
  col.getColumn().setWidth(125);
  col.getColumn().setText("Date Created");
  col.setLabelProvider(new ColumnLabelProvider() {
    @Override
    public String getText(Object element) {
       AplotSaveDataModel.SaveData p = (AplotSaveDataModel.SaveData) element;
      return p.getDateTime();
    }
  });

  col = new TableViewerColumn(this , SWT.NONE);
  col.getColumn().setWidth(100);
  col.getColumn().setText("ItemId");
  col.setLabelProvider(new ColumnLabelProvider() {
    @Override
    public String getText(Object element) {
       AplotSaveDataModel.SaveData p = (AplotSaveDataModel.SaveData) element;
      return p.getItemId();
    }
  });

看看上面的代码,我不明白为什么它们会有所区别?

1 个答案:

答案 0 :(得分:1)

这是使用Windows时非常烦人的SWT错误之一。 Here是错误报告。在Windows中,如果表格包含的图像不在第一列中,则第一列将显示此“间隙”。

您可以跳过第一列(不使用它)并将其宽度设置为零来使用脏修复。

据我所知,这会在使用MacOS时引入一些小故障。


还有一个非常hacky的解决方法here