Java GUI之MouseListener、MouseMotionListener

用于接收组件上“感兴趣”的鼠标事件(按下、释放、单击、进入或离开)的 侦听器接口。
public interface  MouseListenerextends EventListener
(要跟踪鼠标移动和鼠标拖动,请使用 MouseMotionListener。) 旨在处理鼠标事件的类要么实现此接口(及其包含的所有方法),要么扩展抽象类 MouseAdapter(仅重写所需的方法)。 然后使用组件的 addMouseListener 方法将从该类所创建的侦听器对象向该组件注册。当按下、释放或单击(按下并释放)鼠标时会生成鼠标事件。鼠标光标进入或离开组件时也会生成鼠标事件。发生鼠标事件时,将调用该侦听器对象中的相应方法,并将 MouseEvent 传递给该方法
public class Mouse extends JFrame {
   /**
    * 
    */
   private static final long serialVersionUID = 1L;
   private JLabel label;

   public Mouse() {
      super("mouse");
      Container container = getContentPane();
      container.setLayout(new BorderLayout());
      label = new JLabel();
      container.add(label, BorderLayout.SOUTH);
      setSize(300, 300);
      setVisible(true);
      Handler1 handler1 = new Handler1();
      Handler2 handler2 = new Handler2();
      container.addMouseListener(handler1);
      container.addMouseMotionListener(handler2);
   }

   public class Handler1 implements MouseListener {
      public void mouseClicked(MouseEvent e) {
         label.setText("鼠标点击的坐标[" + e.getX() + "," + e.getY() + "]");
      }

      public void mousePressed(MouseEvent e) {
         label.setText("鼠标经过的坐标[" + e.getX() + "," + e.getY() + "]");
      }

      public void mouseReleased(MouseEvent e) {
         label.setText("鼠标释放的坐标[" + e.getX() + "," + e.getY() + "]");
      }

      public void mouseEntered(MouseEvent e) {
         // JOptionPane.showMessageDialog(null, "鼠标进入窗口");
      }

      public void mouseExited(MouseEvent e) {
         label.setText("鼠标在窗口之外");
      }
   }

   public class Handler2 implements MouseMotionListener {
      public void mouseDragged(MouseEvent e) {
         label.setText("鼠标拖拽的坐标[" + e.getX() + "," + e.getY() + "]");
      }

      public void mouseMoved(MouseEvent e) {
         label.setText("鼠标移动的坐标[" + e.getX() + "," + e.getY() + "]");
      }
   }

   public static void main(String[] args) {
      Mouse g = new Mouse();
      g.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   }
}
源码地址:https://github.com/followwwind/javase

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值