想实现类似Windows的画图软件中那种可以随意在画布上涂画的功能,就是拖动鼠标绘制鼠标的痕迹,要使用SWT开发,下面是一部分源码,就是鼠标事件调用的部分class DrawLineListener implements MouseMoveListener, MouseListener, MouseTrackListener, PaintListener{
int oldX, oldY, newX, newY;

@Override
public void mouseEnter(MouseEvent arg0) {
// TODO Auto-generated method stub

} @Override
public void mouseExit(MouseEvent arg0) {
// TODO Auto-generated method stub

} @Override
public void mouseHover(MouseEvent arg0) {
// TODO Auto-generated method stub

} @Override
public void mouseDoubleClick(MouseEvent arg0) {
// TODO Auto-generated method stub

} @Override
public void mouseDown(MouseEvent e) {
// TODO Auto-generated method stub
oldX = e.x;
oldY = e.y;
newX = e.x;
newY = e.y;
// gc.drawPoint(oldX, oldY);
canvas.addMouseMoveListener(listener);
} @Override
public void mouseUp(MouseEvent e) {
// TODO Auto-generated method stub
canvas.removeMouseMoveListener(listener);
} @Override
public void mouseMove(MouseEvent e) {
// TODO Auto-generated method stub
oldX = newX;
oldY = newY;
newX = e.x;
newY = e.y;
canvas.redraw();
} @Override
public void paintControl(PaintEvent e) {
// TODO Auto-generated method stub
e.gc.drawLine(oldX, oldY, newX, newY);
}
}但是实现出来总是错误的,为啥呢,求高人讲解···