Отображаемый текст в столбце не отображается в правильном месте ячейки
В моем первом столбце таблицы отображаемое значение смещено от левого края.
пример
Обратите внимание на смещение значения даты по сравнению со значением 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.
Здесь также есть очень хакерская работа.