Java GUI之MouseListener、MouseMotionListener

来源:互联网 发布:金彩计划软件 编辑:程序博客网 时间:2024/06/05 00:29
用于接收组件上“感兴趣”的鼠标事件(按下、释放、单击、进入或离开)的侦听器接口。
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

原创粉丝点击