java事件

在java语言中,当用户与Gui组件交互时,GUI组件就能激发一个相应的事件
譬如,用户按动按钮,滚动文办,移动鼠标,按下键盘都将产生一个相应的事件,java提供完善的事件处理机制,能够监听事件,识别事件源,并完成事件处理。

事件源(这个就叫病原体吧233):
产生事件的源头,即发生事件的组件
用鼠标单机一个按钮,则这个按钮就是一个事件源,对应的事件为鼠标事件
在文本框中输入一段文字,那文本框就是一个事件源,对应的事件为键盘事件
一个事件源可以被多个事件监听器监听,但是要注册后面会说jb1,jb2同时被我的猫和当前对象监听.
一个事件源可以发生多种事件。譬如在Jpanel面板中,你的鼠标可以点击也可以移动
事件(行为): 承载事件源状态改变时的信息对象
按动按钮,移动鼠标,按下键盘等
事件监听器(监督者):
由事件类和监听接口组成,自定义一个事件前,必须提供一个时间的监听接口以及一个事件类。java中监听接口是继承 java.util.Eventener的类。
如键盘事件KeyEvent对应的接口是:
public interface KeyListener extends Eventistener{
public void keyPressed(KeyEvent ev);//按下去
public void keyReleased(KeyEvent ev);//抬起来
public void keyTyped(KeyEvent ev);//被敲击一次
}
(以上概念是摘自百度百科,其实初学者谁看的懂啊!还是要多写代码体会)

import javax.swing.*;

import java.awt.*;
import java.awt.event.*;
import java.awt.*;
public class Demo10 extends JFrame implements ActionListener{ //继承JFrame窗口,并且实现ActionListener接口
		JPanel jp ;//设置组件 JPanel面板,2个JButton按钮(这3个被称为事件源)
		JButton jb1,jb2;
		public Demo10(){
			 jb1 = new  JButton("按下黑色,变黑色");
			 jb2 = new JButton("按下红色,变红色");
			 jp = new JPanel();
			 
			 
			 this.add(jb1,BorderLayout.NORTH);//设置布局管理器
			 this.add(jp);
			 this.add(jb2,BorderLayout.SOUTH);
			
			 jb1.addActionListener(this);//当前对象监督jb1按钮(当前对象是监督者即-new Demo10())
			 jb1.setActionCommand("AA");;//设置这个组件激发的操作事件的命令名称()中的参数是后面使用getActionCommand().equals("AA")时比较触发事件的是不是这个按钮。
			 jb2.addActionListener(this);
			 jb2.setActionCommand("BB");
			 
			 this.setVisible(true);//这个是死的,不然最基本的窗口都看不见
			 this.setSize(300,300);//设置窗口大小
			 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//我也不知道什么意思,防止内存泄漏。先用着,以后再去理解
			 this.setLocation(500, 500);//设置窗体在电脑上出现的坐标
		}
		public static void main(String[] args) {
				Demo10 de = new Demo10();
		}
	@Override
	public void actionPerformed(ActionEvent e) {//和上面的,setActionListener(),addActionCommand()相呼应的
		// TODO Auto-generated method stub
		if( e.getActionCommand().equals("AA")){
			jp.setBackground(Color.black);//使Jpanel面板变黑色
		}else if(e.getActionCommand().equals("BB")){
			jp.setBackground(Color.red);
		}
	} 
}

java事件_第1张图片java事件_第2张图片
除此之外,还可以自己设置类,创建对象来监督jb1,jb2这2个按钮
我可以创建一个猫,它对这种事情有独特情趣;

class mycat implements ActionListener{
	
	
	public void actionPerformed(ActionEvent e) {
		if(e.getActionCommand().equals("AA")){
			System.out.println("我的猫观察到你按了变黑色的按钮");
		}else if(e.getActionCommand().equals("BB")){
			System.out.println("我的猫观察到按了变红色的按钮");
		}
		
	}

然后在Demo10的构造方法中分别加入jb2/jb1.setActionListener(mycat1);添加监督者进去
jb1.addActionListener(mycat1); jb2.addActionListener(mycat1);
让猫监督。然后运行时候JPanel变色同时也会出现
java事件_第3张图片
(观看韩顺平老师java视频后,结合自己理解写的)

你可能感兴趣的:(java,事件)