private class MouseHandler extends MouseAdapter {
/**
* 鼠标双击,移除图形
* 1.先取得按下点的坐标
* 2.再寻找该坐标是否在某个图形内
* 3.如果在某个图形内,并是双击的话,移除图形
*/
@Override
public void mouseClicked(MouseEvent event) {
current = find(event.getPoint());
if(current != null && event.getClickCount() >= 2) {
remove(current);
}
}
/**
* 鼠标按下,画图形
* 1.先取得按下点的坐标
* 2.再寻找该坐标是否在某个图形内
* 3.如果不在的话,画出该图形
*/
@Override
public void mousePressed(MouseEvent event) {
current = find(event.getPoint());
if(current == null) {
add(event.getPoint());
}
}
}
public class MouseMotionHandler implements MouseMotionListener {
/**
* 鼠标拖动,将图形拖至新位置
*/
@Override
public void mouseDragged(MouseEvent event) {
if(current != null) {
int x = event.getX();
int y = event.getY();
current.setFrame(x - SIDELENGTH / 2, y - SIDELENGTH / 2, SIDELENGTH, SIDELENGTH);
repaint();
}
}
@Override
public void mouseMoved(MouseEvent event) {
if(find(event.getPoint()) == null) {
//setCursor(Cursor.DEFAULT_CURSOR);
} else {
//setCursor(Cursor.CROSSHAIR_CURSOR);
}
}
}