[Java] Mouse/Window/ActionListener 多个事件监听器

import java.awt.*;
import java.awt.event.*;

public class MultiListenerTest implements ActionListener, MouseListener,MouseMotionListener,WindowListener{
   
    Frame f = new Frame("MultiListenerTest");
    Button b = new Button("退出");
    Label l = new Label("请按下鼠标左键并拖动");
    TextField tf = new TextField(40);
   
    //创建一个方法
    public void Start(){
        b.addActionListener(this); //给按钮添加监听事件
        f.add(l,BorderLayout.NORTH);//添加组件并进行布
        f.add(tf,BorderLayout.SOUTH);//添加组件并进行布
        f.add(b,BorderLayout.EAST);//添加组件并进行布局
        f.setBackground(Color.CYAN);//设置frame的颜色
        f.addMouseListener(this); // 给frame添加MouseListener事件
        f.addMouseMotionListener(this);//给frame添加MouseMotionListener事件
        f.addWindowListener(this);//给frame添加 WindowListener 事件
        f.setLocationByPlatform(true);
        f.setSize(400,300);
        f.setVisible(true);               
    }
   
    //重写ActionListener中的actionPerformed(ActionEvent e) 方法
    public void actionPerformed(ActionEvent e){
        System.exit(1);//退出窗口,关闭窗口
    }
    //重写MouseMotionListener中mouseDragged(MouseEvent e)方法
    public void mouseDragged(MouseEvent e){
        String str = "鼠标位置为: X="+e.getX() + ", Y="+e.getY();
        tf.setText(str);
    }
    //重写MouseListener中的mouseEntered(MouseEvent e)方法
    public void mouseEntered(MouseEvent e){
        String str = "鼠标进入窗体X="+e.getX()+", Y="+e.getY();
        tf.setText(str);
    }
    //重写MouseListener中的mouseExited(MouseEvent e)
    public void mouseExited(MouseEvent e){
        String str = "鼠标退出窗体";
        tf.setText(str);
    }
    //重写MouseListener中的mouseMoved(MouseEvente e)方法
    public void mouseMoved(MouseEvent e){
        String str = "鼠标进入窗体X="+e.getX()+", Y="+e.getY();
        tf.setText(str);
    }
    //重写MouseListener中的 mousePressed(MouseEvente e)方法
    public void mousePressed(MouseEvent e){
    }
    //重写MouseListener中的 mouseClicked(MouseEvente e)方法
    public void mouseClicked(MouseEvent e){
    }
    //重写MouseListener中的 mouseReleased(MouseEvente e)方法
    public void mouseReleased(MouseEvent e){
    }
   
    //下面的是重写WindowListener中的所有的抽象方法
    public void windowActivated(WindowEvent e){
    }
    public void windowClosed(WindowEvent e){
    }
    public void windowClosing(WindowEvent e){
        System.exit(0);//关闭窗口
    }
    public void windowDeactivated(WindowEvent e){
    }
    public void windowDeiconified(WindowEvent e){
    }
    public void windowIconified(WindowEvent e){
    }
    public void windowOpened(WindowEvent e){
    }
   
    // 创建main方法,
    public static void main(String[] args){
        new MultiListenerTest().Start();
    }
}
// 由于监听器的类型是接口类型,
//所以在使用监听器的时候要重写监听器所有的抽象方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值