java-鼠标监听(MouseListener、MouseMotionListener)-鼠标事件(MouseEvent)

public class APP {
    public static void main(String[] args) {
        //第一种
        new test();
        //第二种   
        test1 t=new test1();
        t.actionss();
    }
}

import java.awt.Color;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
//第一种方法
public class test implements MouseMotionListener,MouseListener{
    Frame f=new Frame("关于鼠标的多重监听器");//窗体
    TextField tf=new TextField(30);//文本框
    public test() {//构造方法
        Label label=new Label("请按下鼠标左键并拖动");//标签的功能只是显示文本,不能动态地编辑文本。
        f.add(label,"North");
        f.add(tf,"South");
        f.setBackground(new Color(180,255,255));
        f.addMouseListener(this);//添加一个鼠标监听
        f.addMouseMotionListener(this);

        f.addWindowListener(new WindowAdapter(){//添加一个窗口监听
            public void windowClosing(WindowEvent e) {//窗口关闭事件
                System.exit(0);
            }
        });

        f.setSize(300,200);
        f.setLocation(400,250);//设置窗体位置
        f.setVisible(true);
    }



    @Override
    public void mouseClicked(MouseEvent e) {
        System.out.println("鼠标点击---"+"\t"); 
        if(e.getClickCount()==1) {
            System.out.println("单击");
        }else if(e.getClickCount()==2) {
            System.out.println("双击");
        }else if(e.getClickCount()==3) {
            System.out.println("三连击");
        }
    }

    @Override
    public void mousePressed(MouseEvent e) {
        System.out.println("鼠标按下");     
    }

    @Override
    public void mouseReleased(MouseEvent e) {
        System.out.println("鼠标松开");     
    }

    @Override
    public void mouseEntered(MouseEvent e) {
        tf.setText("鼠标已经进入窗体"); 
    }

    @Override
    public void mouseExited(MouseEvent e) {
        tf.setText("鼠标已经移出窗体");     
    }

    @Override
    public void mouseDragged(MouseEvent e) {
                String str="鼠标所在的坐标:("+e.getX()+","+e.getY()+")";
                tf.setText(str);
    }

    @Override
    public void mouseMoved(MouseEvent e) {
            System.out.println("鼠标移动了");    
    }

}

import java.awt.Color;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

//第二种方法,new MouseAdapter()匿名内部类,相比较第一种的优势:可以不用重写所有鼠标事件的方法。
public class test1 {
    Frame f=new Frame("关于鼠标的多重监听器");//窗体
    TextField tf=new TextField(30);//文本框
    public test1() {//构造方法
        Label label=new Label("请按下鼠标左键并拖动");//标签的功能只是显示文本,不能动态地编辑文本。
        f.add(label,"North");
        f.add(tf,"South");
        f.setBackground(new Color(180,255,255));

        f.addWindowListener(new WindowAdapter(){//添加一个窗口监听
            public void windowClosing(WindowEvent e) {//窗口关闭事件
                System.exit(0);
            }
        });

        f.setSize(300,200);
        f.setLocation(400,250);//设置窗体位置
        f.setVisible(true);
    }
    public void actionss() {
        MouseAdapter l=new MouseAdapter() {//匿名内部类
            @Override
            public void mouseClicked(MouseEvent e) {
                System.out.println("鼠标点击---"+"\t"); 
                if(e.getClickCount()==1) {
                    System.out.println("单击");
                }else if(e.getClickCount()==2) {
                    System.out.println("双击");
                }else if(e.getClickCount()==3) {
                    System.out.println("三连击");
                }
            }

            @Override
            public void mousePressed(MouseEvent e) {
                System.out.println("鼠标按下");     
            }

            @Override
            public void mouseReleased(MouseEvent e) {
                System.out.println("鼠标松开");     
            }

            @Override
            public void mouseEntered(MouseEvent e) {
                tf.setText("鼠标已经进入窗体"); 
            }

            @Override
            public void mouseExited(MouseEvent e) {
                tf.setText("鼠标已经移出窗体");     
            }

            @Override
            public void mouseDragged(MouseEvent e) {
                        String str="鼠标所在的坐标:("+e.getX()+","+e.getY()+")";
                        tf.setText(str);
            }

            @Override
            public void mouseMoved(MouseEvent e) {
                    System.out.println("鼠标移动了");    
            }
        };
        f.addMouseListener(l);//处理鼠标的操作事件
        f.addMouseMotionListener(l);//处理鼠标的滑动事件
    }

}
  • 7
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Java中,可以使用MouseListenerMouseMotionListener接口来监听鼠标事件MouseListener接口定义了以下方法: - void mouseClicked(MouseEvent e):当鼠标在组件上单击时调用。 - void mouseEntered(MouseEvent e):当鼠标进入组件时调用。 - void mouseExited(MouseEvent e):当鼠标离开组件时调用。 - void mousePressed(MouseEvent e):当鼠标在组件上按下时调用。 - void mouseReleased(MouseEvent e):当鼠标在组件上释放时调用。 MouseMotionListener接口定义了以下方法: - void mouseDragged(MouseEvent e):当鼠标在组件上拖动时调用。 - void mouseMoved(MouseEvent e):当鼠标在组件上移动时调用。 要使用这些接口,需要实现它们并将其添加到组件中。例如,在一个JPanel上监听鼠标事件: ```java import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JPanel; public class MyPanel extends JPanel implements MouseListener { public MyPanel() { addMouseListener(this); // 添加MouseListener接口 } @Override public void mouseClicked(MouseEvent e) { // 鼠标单击事件 } @Override public void mouseEntered(MouseEvent e) { // 鼠标进入事件 } @Override public void mouseExited(MouseEvent e) { // 鼠标离开事件 } @Override public void mousePressed(MouseEvent e) { // 鼠标按下事件 } @Override public void mouseReleased(MouseEvent e) { // 鼠标释放事件 } } ``` 要监听鼠标拖动和移动事件,可以将MouseMotionListener接口添加到组件中: ```java import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import javax.swing.JPanel; public class MyPanel extends JPanel implements MouseListener, MouseMotionListener { public MyPanel() { addMouseListener(this); // 添加MouseListener接口 addMouseMotionListener(this); // 添加MouseMotionListener接口 } // 实现MouseListener接口方法(略) @Override public void mouseDragged(MouseEvent e) { // 鼠标拖动事件 } @Override public void mouseMoved(MouseEvent e) { // 鼠标移动事件 } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰河家园

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值