我在JFace的TableViewer
中有一些带图像的列,但不幸的是似乎只允许16px宽的列图像,这太小了,无法显示两幅图像。我尝试使用32px的图像,但它被压缩成了16px x 16px的图像。也许有一些装饰器可以自动叠加两张图片吗?
是否有任何可能实现这个功能呢?
我在JFace的TableViewer
中有一些带图像的列,但不幸的是似乎只允许16px宽的列图像,这太小了,无法显示两幅图像。我尝试使用32px的图像,但它被压缩成了16px x 16px的图像。也许有一些装饰器可以自动叠加两张图片吗?
是否有任何可能实现这个功能呢?
您可以使用OwnerDrawLabelProvider
在TableViewer
中绘制任何大小的Image
。
然后,您需要在方法中自己绘制图像:
protected void paint(Event event, Object element)
并在方法中定义表格单元格大小:
protected void measure(Event event, Object element)
这里有一篇由Vogella撰写的精彩教程(点击此处),其中包含示例代码。
结果如下:
如果您想叠加图像,只需将GC
的alpha设置为半透明状态,使用{{link1:GC#setAlpha(int)
}}即可。
LabelProvider
中返回的第一张图像的大小。 - Tom Seidel