`
ycyxb104
  • 浏览: 26663 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

事件机制

阅读更多

事件机制

在事件机制中就需要使用接口或者抽象类。

 

对象分为三种:

事件:发出的事件本身,在事件源和事件监听器之间传递信息的对象实体

事件源:发出事件者,事件发生的地方,由于事件源的某项属性或状态发生了改变(比如BUTTON被单击)导致某项事件发生。换句话说就是生成了相应的事件对象。因为事件监听器要注册在事件源上,所以事件源类中应该要有盛装监听器的容器(List,Set等等)。所有的图形界面组件都可以成为事件源对象;

③事件监听器:监听事件,当事件源的属性或状态改变时,进行事件处理或转发的对象

④事件处理器:接受事件对象并进行相应处理。

 

事件接口:

ActionListener:事件监听器  

MouseListener:鼠标监听器  

MouseMotionListener:鼠标移动监听  

MouseWheelListener:鼠标滚轮监听器  

事件接口中的方法特点:自动触发,只要当前事件被触发了后,事件类中的相应方法会自动执行

注意:实现监听器必须把监听器中的所有抽象方法都实现(重写),不然类名会报错

 

常用的事件监听器方法:

addActionListener(ActionListener al); 用来捕获按钮上的鼠标点击或者输入框的回车动作。

addMouseListener(MouseListener ml); 用来捕获事件源上鼠标在事件源按下,鼠标在事件源释放,鼠标在事件源单击,鼠标进入事件源,鼠标推出事件源

addMouseMotionListener(MouseMotionListener mml); 用来捕获鼠标在事件源上的移动和按下按键移动的监听器方法。

addKeyListener(KeyListener kl); 用来在事件源上捕获键盘按键的动作。

 

 下面为一个登录界面的实例:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*; 
public class LoginListener implements ActionListener {
	private JTextField txtName;//定义一个JTextField类属性的变量名 txtName
	public LoginListener(JTextField txtName){
		this.txtName = txtName;
	}
	public void actionPerformed(ActionEvent e) {
		System.out.print("你点击了"+e.getActionCommand()+"按钮");
		String name=txtName.getText();//获取输入框中的值
		//判断name中的值与“123”是否匹配
		if (name.equals("123")){
			//实现一个新窗体
			JFrame jf = new JFrame("简单画板");
			jf.setSize(200, 200);
			jf.setDefaultCloseOperation(2);
			JLabel JL=new JLabel("                    登录成功");
			jf.add(JL);
			jf.setVisible(true);
	}
		else{
			//显示一个消息提示框
			JOptionPane.showMessageDialog(null, "你输入的账号或密码错误,请重新输入!");
		}
		
	}

}

 

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*; 

public class RegisterListener implements ActionListener{

	public void actionPerformed(ActionEvent e) {
		JFrame J = new JFrame();//实例化一个窗体对象
		J.setTitle("注册页面");//设置窗体标题
		J.setSize(190, 200);//设置窗体大小
		J.setLocation(500,300);//设置窗体位置
		J.setDefaultCloseOperation(3);//设置窗体关闭属性
		FlowLayout fl = new FlowLayout();//实例化一个流式布局类对象
		J.setLayout(fl);//设置窗体的布局方式为流式布局
		JButton JB1 = new JButton("完成");//实例化一个按钮对象
		JLabel JL1=new JLabel("用户名");//实例化一个标签对象
		JLabel JL2=new JLabel("密码");
		JLabel JL3=new JLabel("确认密码");
		JLabel JL4=new JLabel("邮箱");
		JLabel JL5=new JLabel("输入验证码");
		JTextField JT1=new JTextField(10);//实例化一个文本对象
		JTextField JT2=new JTextField(10);
		JTextField JT3=new JTextField(4);
		JPasswordField JP1=new JPasswordField(10);//实例化一个密码文本对象
		JPasswordField JP2=new JPasswordField(10);
		//将对象添加到窗体上
		J.add(JL1);
		J.add(JT1);
		J.add(JL2);
		J.add(JP1);
		J.add(JL3);
		J.add(JP2);
		J.add(JL4);
		J.add(JT2);
		J.add(JL5);
		J.add(JT3);
		J.add(JB1);
		J.setResizable(false);//设置是否可以自由改变大小
		J.setVisible(true);//设置窗体是否可见
	}
}

 

import java.awt.FlowLayout;  
import javax.swing.*; 

public class Frame{
	public static void main(String[] args){
		JFrame JF=new JFrame();//设置一个窗体对象
		 JF.setDefaultCloseOperation(3);//设置窗体的关闭属性
		 JF.setSize(180,200);//设置窗体的大小
		 JF.setLocation(500,300);//设置窗体的位置
		 JF.setTitle("简单登陆界面");//设置窗体的标题
		 FlowLayout fl = new FlowLayout();//实例化一个流式布局类对象
		 JButton JB1 = new JButton("登  录");//实例化一个按钮对象
		 JButton JB2 = new JButton("注  册");//实例化一个按钮对象
		 JLabel JL1 = new JLabel("用户名");//实例化一个标签对象
		 JLabel JL2 = new JLabel("密码");//实例化一个标签对象
		 JTextField JT = new JTextField(10);//实例化一个文本对象
		 JPasswordField JW = new JPasswordField(10);//实例化一个文本对象
		 JF.setLayout(fl);//设置窗体的布局为流式布局
		 JF.setResizable(false);//设置窗体是否可以自由改变大小
		 //将对象添加到窗体上
		 JF.add(JL1);
		 JF.add(JT);
		 JF.add(JL2);
		 JF.add(JW);
		 JF.add(JB1);
		 JF.add(JB2);
		 LoginListener l1 = new LoginListener(JT);//实例化一个LoginListener事件处理对象
		 RegisterListener l2 = new RegisterListener();
		 JT.addActionListener(l1);
		 JB1.setActionCommand(" 登录 ");//设置动作命令
		 JB1.addActionListener(l1);//捕获动作
		 JB2.setActionCommand(" 注册 ");//设置动作命令
		 JB2.addActionListener(l2);
		 JF.setVisible(true);//设置窗体是否可见
	}
}

 

分享到:
评论

相关推荐

    java中的事件机制

    Java中的事件机制是Java编程中一个重要的概念,它基于观察者模式(Observer Pattern)来实现对象之间的通信。观察者模式是一种行为设计模式,允许你定义一个订阅机制,可以在对象状态改变时通知多个“观察”该对象的...

    JavaScript事件机制详细研究

    JavaScript 事件机制详细研究 JavaScript 事件机制是指浏览器中发生的各种事件,例如点击、鼠标悬停、键盘输入等,JavaScript 通过捕捉这些事件来执行相应的操作。本文将详细介绍 JavaScript 事件机制的实现方式和...

    openlayer事件机制介绍

    事件机制是OpenLayers的核心部分,它使得用户与地图进行交互成为可能。在OpenLayers中,事件机制主要涉及到控件(Controls)和处理器(Handlers)的概念。 控件在OpenLayers中扮演着重要的角色,它们是附加到地图上...

    Java事件机制例子

    Java事件机制基于观察者模式,其中事件源(如按钮)会发布事件,而事件监听器则订阅这些事件并执行相应的操作。 事件、事件监听器和事件源是Java事件处理的三个核心概念。事件是用户或系统发生的某种情况,如鼠标...

    Qt中的事件机制

    ### Qt中的事件机制详解 #### 一、事件的分类与特性 在Qt中,事件机制是框架的核心之一,用于管理用户界面与用户的交互过程。事件根据其产生方式的不同,可以分为三类:自发事件(Spontaneous events)、发布事件...

    reactnative触摸事件机制详解及高仿微信通讯录功能

    本文将深入探讨React Native的触摸事件机制,并展示如何利用这一机制实现类似微信通讯录的功能。 首先,我们要了解React Native中的触摸事件系统。与Web开发中的点击事件不同,React Native使用了一套基于 ...

    c#事件机制归纳,c#事件机制归纳,c#事件机制归纳

    C# 事件机制归纳 C# 事件机制是指在 C# 编程语言中实现事件处理的机制,包括委派、事件和事件处理过程。以下是对 C# 事件机制的详细归纳: 一、委派 委派是指一种特殊的方法签名,可以将方法作为参数传递,用于...

    flex事件机制的demo

    Flex ActionScript3.0事件机制的Demo, 举例说明了事件的三个阶段,事件的派发,事件的侦听,事件的拦截,自定义事件等相关知识点. 以上知识点在Demo中都有体现,初学者请仔细分析代码,加强理解,多调试、修改、验证以加深...

    spring事件机制

    Spring框架的事件机制是其核心特性之一,它提供了一种基于发布-订阅模式的事件处理方式,使得在Spring应用中的不同组件之间可以进行解耦通信。这个机制允许一个组件(通常是一个服务)触发一个事件,然后其他感兴趣...

    使用Spring事件机制实现异步的方法

    使用Spring事件机制实现异步的方法 Spring框架提供了一种事件机制,允许开发者将代码解耦合,实现松散耦合的设计理念。这里将详细介绍如何使用Spring事件机制实现异步的方法。 事件机制的实现主要包括三个部分:...

    android 事件机制

    安卓事件机制的描述,包括安卓的进程通信机制、view事件的传递机制以及安卓的广播机制。

    Qt事件机制浅析

    ### Qt事件机制浅析 #### 一、什么是事件? 在Qt框架中,事件是指系统或应用程序内部发生的某种“动作”,这种“动作”需要被特定的对象所感知并作出响应。这里的“动作”是一种广义上的概念,既包括用户交互操作...

    Flex4.5事件机制

    Flex4.5事件机制是Flex应用程序开发中的核心组成部分,它基于ActionScript 3.0的事件模型,并且遵循DOM3级事件规范。事件机制使得开发者能够轻松响应用户交互和系统事件,为Flex程序员提供了强大且直观的处理工具。 ...

    PHP 事件机制(2)

    在上一个版本的事件机制中,可能涉及了复杂的事件监听器和触发器的实现,而在这个版本中,主要目标是简化这一过程。我们来看一下具体实现。 首先,定义了一个名为`Event`的类,它继承自`stdClass`。`Event`类有两个...

    Android事件机制测试项目

    在Android开发中,事件机制是应用交互的核心部分,它使得用户与应用程序之间的沟通变得顺畅。这个"Android事件机制测试项目"旨在深入理解并实践这一关键功能。以下将详细阐述Android事件处理的相关知识点。 首先,...

    Visual C++事件机制线程同步工程

    在IT领域,线程同步和事件机制是多线程编程中的关键概念,特别是在Windows系统下,Visual C++提供了丰富的工具来实现这些功能。本项目"Visual C++事件机制线程同步工程"着重于如何利用事件对象(CEvent)进行线程间...

    Flex 事件机制,flex入门学习

    【Flex 事件机制详解】 Flex 事件机制是 Flex 应用程序中不可或缺的一部分,它使得组件之间能够有效地通信,响应用户交互以及管理应用程序状态。在深入理解 Flex 事件机制之前,我们需要先了解一下基本概念。 1. *...

    js事件机制 .pdf

    ### JavaScript事件机制详解 #### 一、引言 在学习编程语言的过程中,"事件"这一概念往往是初学者遇到的一个难点,然而它又是编程中极为重要的一个组成部分。在JavaScript中,事件处理更是不可或缺的一部分,它是...

    Flex事件机制详细说明

    ### Flex事件机制详解 #### 一、事件简介 在Flex框架中,事件是应用程序与用户交互的核心机制之一。它可以由多种触发源启动,包括但不限于用户的输入(如键盘按键、鼠标点击)、外部数据加载完成(例如WebService...

    Flex的事件机制笔记

    Flex事件机制是Adobe Flex应用程序开发中的核心组成部分,它允许组件之间进行有效的通信和交互。对于初级Flex程序员或爱好者来说,理解这一机制至关重要。在本文中,我们将深入探讨Flex事件的各个方面,包括事件流、...

Global site tag (gtag.js) - Google Analytics