SWT鼠标UP DOWN位置

时间:2016-01-04 08:42:28

标签: java canvas swt mouseevent paint

我想制作一个应用程序,以便在绘画中绘制一个矩形。 我使用了事件“mouseDown”以获得第一个位置,而mouseUp用于第二个位置但它不起作用。

我不知道为什么它不起作用(我的程序崩溃也与我的mouseUp事件没有任何关系)

这是我的代码:

Canvas paintC = new Canvas(shell, SWT.NONE);
paintC.addMouseListener(new MouseAdapter() {
    @Override
    public void mouseUp(MouseEvent e) {
        GC gc = new GC(paintC);

        displayRelativePos2.x = e.x;
        displayRelativePos2.y = e.y;

        hauteur = displayRelativePos2.y - displayRelativePos1.y;
        largeur = displayRelativePos2.x - displayRelativePos1.x;

            gc.setBackground(SWTResourceManager.getColor(SWT.COLOR_RED));
            gc.fillOval(displayRelativePos1.x , displayRelativePos1.y , 50 , 50);
        }
        @Override
        public void mouseDown(MouseEvent e) {
            displayRelativePos1.x = e.x;
            displayRelativePos1.y = e.y;

        }
    });

这是错误:

at Fenetre$1.mouseDown(Fenetre.java:148)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:192)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4230)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1491)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1514)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1499)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1299)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4072)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3698)
at Fenetre.open(Fenetre.java:86)
at Fenetre.main(Fenetre.java:71)

如何解决这个问题?或者有另一种方法可以做到这一点?我已经测试了拖放但它也不起作用。 (SWT drop cursor position on canvas

0 个答案:

没有答案