鼠标按下,画出图形的两个内部类

 

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);
   }
  }
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值