Image 使用图像在tableviewer中进行奇怪的对齐和布局
我使用带有两列的Image 使用图像在tableviewer中进行奇怪的对齐和布局,image,alignment,swt,jface,tableviewer,Image,Alignment,Swt,Jface,Tableviewer,我使用带有两列的TableViewer。根据对象的状态,第一个应该包含文本,第二个应该包含图像。标签提供程序是一个自定义提供程序,它扩展了LabelProvider,并实现了ITableLayoutProvider 如果没有显示图像,则说明布局正确,并且第一列中的文本向左对齐。 但是,当至少显示一幅图像时,第一列中的文本在右侧和中间的某个位置对齐,看起来有点难看 布局非常简单: availableDevicesList = new TableViewer(this, SWT.SINGLE |
TableViewer
。根据对象的状态,第一个应该包含文本,第二个应该包含图像。标签提供程序是一个自定义提供程序,它扩展了LabelProvider
,并实现了ITableLayoutProvider
如果没有显示图像,则说明布局正确,并且第一列中的文本向左对齐。
但是,当至少显示一幅图像时,第一列中的文本在右侧和中间的某个位置对齐,看起来有点难看
布局非常简单:
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);
是什么导致了这个问题 这是Windows API中的一个bug。它只影响表中的第一列,所以官方的解决办法是“跳过”第一列,并将其设置为零大小(请参阅错误报告的最后一条评论),但在Mac OS X上,表列不能为零大小,因此将有大小为1或类似的可见第一列
是的,我也讨厌Win API中的这个bug