私はTableViewer2列のを使用します。オブジェクトの状態に応じて、1つ目はテキストを含み、2つ目は画像を含む必要があります。ラベルプロバイダーは、を拡張LabelProviderおよび実装するカスタムプロバイダーですITableLayoutProvider。
画像が表示されていない場合、レイアウトは正しく、最初の列のテキストは左揃えになっています。

しかし、少なくとも1つの画像が表示されると、最初の列のテキストは右と中央の間のどこかに配置されます-ちょっと醜いように見えます。

レイアウトは非常に単純です。
availableDevicesList = new TableViewer(this, SWT.SINGLE | SWT.BORDER
| SWT.FULL_SELECTION);
availableDevicesList.setContentProvider(new ArrayContentProvider());
Table table = availableDevicesList.getTable();
TableLayout tableLayout = new TableLayout();
table.setLayout(tableLayout);
table.setLinesVisible(true);
tableLayout.addColumnData(new ColumnWeightData(3));
new TableColumn(table, SWT.LEFT);
tableLayout.addColumnData(new ColumnWeightData(1));
new TableColumn(table, SWT.RIGHT);
この問題の原因は何ですか?