Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以用Java为figureCanvas绘制渐变背景吗_Java_Gradient_Draw2d - Fatal编程技术网

我可以用Java为figureCanvas绘制渐变背景吗

我可以用Java为figureCanvas绘制渐变背景吗,java,gradient,draw2d,Java,Gradient,Draw2d,我想为一个人物画一个渐变背景。不幸的是,适用于复合材料或类似产品的代码不适用于我的FigureCanvas。当它在我的合成图上形成一个完美的渐变背景时,它只是简单地将一种颜色作为我的FigureCanvas的背景 下面是它如何与我的所有其他控件一起工作的一个片段 Rectangle rect = parent.getClientArea(); Image newImage = new Image(parent.getDisplay(), 1, Math.max(1, rect.height));

我想为一个人物画一个渐变背景。不幸的是,适用于复合材料或类似产品的代码不适用于我的FigureCanvas。当它在我的合成图上形成一个完美的渐变背景时,它只是简单地将一种颜色作为我的FigureCanvas的背景

下面是它如何与我的所有其他控件一起工作的一个片段

Rectangle rect = parent.getClientArea();
Image newImage = new Image(parent.getDisplay(), 1, Math.max(1,
rect.height));
GC gc = new GC(newImage);
gc.setForeground(composite.getDisplay().getSystemColor(SWT.COLOR_WHITE));
gc.setBackground(composite.getDisplay().getSystemColor(SWT.COLOR_BLUE));
gc.fillGradientRectangle(0, 0, 1, rect.height, true);
gc.dispose();
composite.setBackgroundImage(newImage);
我是不是遗漏了什么?或者,如果不覆盖或扩展某些内容,这是不可能的,如果是,什么??我还尝试使用与另一个合成图相同的背景图像,效果很好


谢谢你的回答

原来问题不在于FigureCanvas本身,而是GEF在其他地方过度编写了它