Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.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 Eclipse/SWT:占据整个画布的矩形_Java_Eclipse_Swt_Rcp_Draw2d - Fatal编程技术网

Java Eclipse/SWT:占据整个画布的矩形

Java Eclipse/SWT:占据整个画布的矩形,java,eclipse,swt,rcp,draw2d,Java,Eclipse,Swt,Rcp,Draw2d,我正在编写一个基于EclipseRCP的应用程序,并试图在ViewPart顶部绘制一个矩形。然而,矩形似乎占据了整个屏幕,即使在指定边界时也是如此。下面是我的代码 public void createPartControl(Composite parent) { Shell shell = parent.getShell(); Canvas canvas = new Canvas(parent, SWT.NONE); LightweightSys

我正在编写一个基于EclipseRCP的应用程序,并试图在ViewPart顶部绘制一个矩形。然而,矩形似乎占据了整个屏幕,即使在指定边界时也是如此。下面是我的代码

public void createPartControl(Composite parent) {
        Shell shell = parent.getShell();

        Canvas canvas = new Canvas(parent, SWT.NONE);
        LightweightSystem lws = new LightweightSystem(canvas);
        RectangleFigure rectangle = new RectangleFigure();
        rectangle.setBounds(new Rectangle(0, 0, 10, 10));
        rectangle.setBackgroundColor(ColorConstants.green);
        lws.setContents(rectangle);
}

我没有使用Draw2D,但我尝试通过创建另一个矩形图形并将其添加到第一个图形来修改您的示例,结果显示了该图形。即

// from your code
rectangle.setBackgroundColor(ColorConstants.green);

// new code
RectangleFigure r2 = new RectangleFigure();
r2.setBounds(new Rectangle(0,0,10,10));
r2.setBackgroundColor(ColorConstants.blue);
rectangle.add(r2);

// back to your code
lws.setContents(rectangle);

在我看来很好——在全绿色画布的左上角有一个蓝色的小矩形。我猜您作为画布内容使用的图形默认(可能是必要的)占据了整个画布。

谢谢您的帮助,Ladlestein。你似乎是对的。第一个矩形占据了整个画布,不管是什么。