第十三周课程总结

java事件监听器分为三部分:事件,事件源,监听器。
当事件源发生某个动作的时候,它会调用事件监听器的方法,并在调用事件监听器方法的时候把事件对象传递进去。

事件类

接口:

package event.events;

import java.util.EventObject;

public interface EventInfo{
    public String getDoType() ;
}

监听器

接口

package event.eventListener;

import event.events.EventInfo;

import java.util.EventListener;

public interface EventListenerInfo extends EventListener {

    public default void handler(EventInfo eventInfo){
        System.out.println(eventInfo.toString());
    }

}

鼠标

所有组件都能发出鼠标事件,MouseEvent类负责捕获鼠标事件,可以通过为组件添加实现了MouseListener接口的监听器类来处理相应的鼠标事件。
在每个事件触发后都会产生MouseEvent事件,此事件可以得到鼠标的相关操作

MouseListener接口共有5个抽象方法,分别在光标移入或移出组件时、鼠标按键被按下或释放时和发生单击事件时被触发。所谓单击事件,就是按键被按下并释放。
此接口定义了:


import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
 
import javax.swing.*;
 
public class t3 extends JFrame{
	
	private static final long serialVersionUID = 1L; 
	
	public t3() {
		setTitle("Hern");
		setBounds(400, 400, 400, 400);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		final JLabel label = new JLabel();
		label.setText("请用鼠标点击");
		label.addMouseListener(new MouseListener() {
			
			@Override
			public void mouseReleased(MouseEvent e) {//鼠标按键被释放时被触发
				// TODO Auto-generated method stub
				System.out.println("鼠标按键被释放,");
				int i = e.getButton(); //通过该值可以判断释放的是哪个键
				if (i == MouseEvent.BUTTON1) {
					System.out.print("释放了鼠标左键");
				}else if(i == MouseEvent.BUTTON2) {
					System.out.println("释放了鼠标滚轮");
				}else if(i == MouseEvent.BUTTON3){
					System.out.println("释放了鼠标右键");
				}
					
			}
			
			@Override
			public void mousePressed(MouseEvent e) {//鼠标按键被按下时被触发
				// TODO Auto-generated method stub
				System.out.print("鼠标按键被按下,");
				int i = e.getButton(); // 通过该值可以判断按下的是哪个键
				if(i == MouseEvent.BUTTON1) {
					System.out.print("按下了鼠标左键");
				}else if(i == MouseEvent.BUTTON2) {
					System.out.print("按下了鼠标滚轮");
				}else if(i == MouseEvent.BUTTON3) {
					System.out.print("按下了鼠标右键");
				}
			}
			
			@Override
			public void mouseExited(MouseEvent e) {//光标移出组件时被触发
				// TODO Auto-generated method stub
				System.out.println("光标移除组件");
			}
			
			@Override
			public void mouseEntered(MouseEvent e) {//光标移入组件时被触发
				// TODO Auto-generated method stub
				System.out.println("光标移入组件");
 
			}
			
			@Override
			public void mouseClicked(MouseEvent e) {//发生单击事件时被触发
				// TODO Auto-generated method stub
				System.out.print("单击了鼠标按键,");
				int i = e.getButton(); // 通过该值可以判断单击的是哪个键
				if (i == MouseEvent.BUTTON1) {
					System.out.print("单击的是鼠标左键,");
				}else if (i == MouseEvent.BUTTON2) {
					System.out.print("单击的是鼠标滚轮,");
				}else if (i == MouseEvent.BUTTON3) {
					System.out.print("单击的是鼠标右键,");
				}
				int clickCount = e.getClickCount();//获取单击按键的次数
				System.out.println("单击次数为" + clickCount + "下");
			}
		});
		
		
		add(label);
		setVisible(true);
	}
 
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		t3 test = new t3();
 
	}
 
}


键盘

KcyListcner接口对键盘的操作进行监听

如果想要取得键盘键入的内容,可以通过keyEvent取得

原文地址:https://www.cnblogs.com/zsbhs/p/11922479.html