Отображаемый текст в столбце не отображается в правильном месте ячейки

В моем первом столбце таблицы отображаемое значение смещено от левого края.

пример

введите описание изображения здесь

Обратите внимание на смещение значения даты по сравнению со значением 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 ответ

Решение

Это одна из самых неприятных ошибок SWT при использовании Windows. Вот отчет об ошибке. В окнах, если таблица содержит изображение, которого нет в первом столбце, в первом столбце будет отображаться этот "пробел".

Вы можете использовать грязное исправление, пропустив первый столбец (не используя его) и установив его ширину в ноль.

Насколько я правильно помню, это приведет к небольшим сбоям при использовании MacOS.


Здесь также есть очень хакерская работа.

Другие вопросы по тегам