我正在使用 SWT 4.2Tree
小部件。我需要将颜色代码与TreeItem
列表中的每个相关联。我正在使用TreeItem
's来执行此操作setImage(...)
,其中创建的图像如下:
private Image createImage(int imageSize)
{
Image image = new Image(Display.getDefault(), imageSize, imageSize);
GC gc = new GC(image);
gc.setAntialias(SWT.ON);
gc.setBackground(... a Color object ...);
gc.fillRoundRectangle(0, 0, imageSize, imageSize, 5, 5);
gc.dispose();
return image;
}
这实际上效果很好,除了一个细节:圆角矩形外的角不透明——它们保持白色。效果是带有白色条纹的圆形彩色正方形。当用户选择 中的项目时,这一点尤其明显Tree
,因为选择颜色使白色角非常明显。
我Image.setBackground(...)
在创建之前尝试过使用GC
,因为该方法的文档指出:“设置将透明像素映射到的颜色”。但是,据我所知,将颜色设置为白色或TreeItem
图像设置位置的颜色(无论如何都是白色)没有任何效果。我还尝试在上面的代码中设置 alpha 值GC
,但似乎无法获得正确的咒语来将 GC 的背景设置为透明但填充的矩形不透明。
我究竟做错了什么?如何使填充矩形外部的区域透明,以便填充圆角矩形外部的图像角在出现在Tree
列表中时正确透明?