Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.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
Eclipse plugin 从包含多段线的图层创建图像_Eclipse Plugin_Swt_Eclipse Rcp_Eclipse Gef_Draw2d - Fatal编程技术网

Eclipse plugin 从包含多段线的图层创建图像

Eclipse plugin 从包含多段线的图层创建图像,eclipse-plugin,swt,eclipse-rcp,eclipse-gef,draw2d,Eclipse Plugin,Swt,Eclipse Rcp,Eclipse Gef,Draw2d,我制作了一个draw2d图层的swt.graphics.Image对象,其中包含draw2d多段线和一些其他图形,如圆、椭圆等。我从这个图像对象制作了一个jpeg文件,我只能看到椭圆、圆等,但最终的jpeg文件中没有使用draw2d多段线绘制的图形(连接箭头、多边形形状等)。我希望多段线也被打印并在最终的jpeg文件中可见。你知道我该怎么做吗?我试着把这层放在一个壳里。但是我必须使用shell.open()向用户显示(我不应该这样做)shell,只有在最终的jpeg文件中可以看到多段线形状。我猜

我制作了一个draw2d图层的swt.graphics.Image对象,其中包含draw2d多段线和一些其他图形,如圆、椭圆等。我从这个图像对象制作了一个jpeg文件,我只能看到椭圆、圆等,但最终的jpeg文件中没有使用draw2d多段线绘制的图形(连接箭头、多边形形状等)。我希望多段线也被打印并在最终的jpeg文件中可见。你知道我该怎么做吗?我试着把这层放在一个壳里。但是我必须使用shell.open()向用户显示(我不应该这样做)shell,只有在最终的jpeg文件中可以看到多段线形状。我猜shell.open()会强制绘制shell及其子对象(图层、多段线等)。对于不显示壳而强制在图层上绘制多段线,是否有任何解决方法

谢谢和问候
巴拉斯

我找到了解决办法。我在图层上调用了validate()。之前,我在FigureCanvas上调用redraw()、Layout()等,该层位于该图上,没有任何更改。现在,在层上调用validate()之后,它似乎可以工作了

你到底是如何创建图像的?您的连接可能与其他图形位于不同的层上。您确定要绘制这两个图层(或者更确切地说是它们的共同父图层)?圆圈和椭圆位于保留在图层内的图形上。多段线保留在不同的图形上,该图形也保留在同一图层中。正如您所提到的,可能只绘制了顶部的图形,其余的则没有。只有一层,我将这一层放在一个FigureCanvas中。我不是在说一场明确的抽签或诸如此类的事情。