`

Java学习事件机制小结

 
阅读更多

 

Java学习事件机制小结

 

    事件处理是界面处理的基本功能,一个事件处理流程可由三部分组成:事件源,事件监听器,以及事件处理类。

 

1.事件

 

比如说你点击一个按钮,关闭一个窗口,这种可以发生响应的操作就叫做事件。

 

2.事件源

 

动作发生的组件对象即为事件源,例如点击的按钮,那个关闭图标就是事件源,由它们来引导相应事件的发生,Java所有的图形界面组件都可以成为事件源对象。

 

3.事件监听器

 

当事件源发生动作时,系统会发出事件通知,这个事件通知会被做为一个EventObject(事件对象)通知给对这个事件有兴趣的处理对象EventListener(事件监听器),给事件源添加相应的事件监听器方法。事件监听器方法激活后捕获发生动作的事件及其信息,信息收集起来后一起存入一个**Event的对象中,自动的调用事件处理者。

 

4.事件处理类

 

事件最终处理的地方,要定义相应的事件处理方法,首先定义一个类,然后实现事件接口,再实现接口中的方法。

 

 

 

总的来说,就是给事件源添加动作监听器方法,绑定事件处理类的对象,实现事件处理类。当在事件源上发生监听器方法能捕获的动作后,监听器方法就会被激活,然后收集事件源和事件对象的信息,交给事件处理类对象,事件处理类兑现给自动执行事件处理方法,完成事件的执行操作。

 

 

 

代码示例:

 

 

 

 

 

 

import javax.swing.JFrame;
import java.awt.FlowLayout;
import javax.swing.JLabel;
/**
 * 定义一个登陆界面类
 * @author Lanwei
 *
 */
public class Login {
	/**
	 * 定会程序入口
	 */
	public static void main(String[] args){
		//实例化一个Login对象
		Login login = new Login();
		//调用初始化界面的方法
		login.initUI();
	}
	/**
	 * 定义初始化界面的方法
	 */
	public void initUI(){
		//实例化一个窗体(JFrame)类
		JFrame jf = new JFrame();
		//设置窗体jf的属性值
		jf.setTitle("我的登陆界面");//设置窗体标题
		jf.setSize(300,200);//设置窗体的大小
		jf.setDefaultCloseOperation(3);//设置窗体关闭时的操作
		jf.setLocation(200, 200);//设置窗体的起始显示位置
		jf.setResizable(false);//设置禁止调整窗体的大小
		
		//实例化一个炉石布局类的对象
		FlowLayout fl = new FlowLayout();
		//设置窗体的布局方式为流式布局
		jf.setLayout(fl);
		
		//实例化一个账号标签对象
		JLabel lblName = new JLabel("账号:");
		//添加到jf窗体上
		jf.add(lblName);
		
		//实例化一个输入框对象
		javax.swing.JTextField txtName = new javax.swing.JTextField(20);
		//添加到jf窗体上
		jf.add(txtName);
		
		//实例化一个密码标签
		JLabel lblPwd = new JLabel("密码:");
		//将对象添加到窗体上
		jf.add(lblPwd);
		// 实例化一个输入框对象
		javax.swing.JTextField txtPwd = new javax.swing.JTextField(20);
		// 将对象添加到窗体对象上
		jf.add(txtPwd);
		// 实例化一个按钮对象
		javax.swing.JButton btnLogin = new javax.swing.JButton("登         录");
		// 将对象添加到窗体对象上
		jf.add(btnLogin);
		
		//设置窗体可见
		jf.setVisible(true);
		
		//实例化事件处理类的对象
		LoginListener ll = new LoginListener(txtName,txtPwd);
		//给事件源登录按钮添加动作监听方法,绑定事件处理类的对象
		btnLogin.addActionListener(ll);
		txtPwd.addActionListener(ll);
	}
	 

}

 

 

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
/**
 * 定义一个类用以实现ActionListener接口
 * @author Lanwei
 *
 */
public class LoginListener  implements ActionListener{
	//账号和密码输入框对象
	private JTextField txtName,txtPwd;
	/**
	 * 事件处理类的构造方法
	 */
	public LoginListener(JTextField txtName,JTextField txtPwd){
		this.txtName = txtName;
		this.txtPwd = txtPwd;
	}
	/**
	 * 事件处理方法
	 */
	public void actionPerformed(ActionEvent e){
		//获取输入框的值
		String name = txtName.getText();
		String pwd = txtPwd.getText();
	
	//判断账号和密码输入框中输入的值是否是admin
	if(name.equals("lanwei123") && pwd.equals("lanwei123")){
			//登陆成功后显示一个画板界面
			JFrame jf = new JFrame("画板");
			jf.setSize(300, 300);
			jf.setDefaultCloseOperation(2);
			jf.setLocation(300, 300);
			jf.setVisible(true);
	}
	else{
		//表示账号和密码输入错误弹出一个提示框的界面
		JOptionPane.showMessageDialog(null, "你的输入的账号或密码错误,请重新输入!");
			}

   }

}

 

 

程序的初始界面如图:

 

程序中定义的账号和密码均为“lanwei123”,如输入不符,则提示:

 

输入成功则显示画板界面:

 

程序结束!

  • 大小: 8.9 KB
  • 大小: 8.8 KB
  • 大小: 10.1 KB
分享到:
评论

相关推荐

    java异常机制小结

    本资源主要描述java异常的知识,里面内容丰富,是java初学者的学习手册,java异常机制小结。

    Java反射机制学习总结

    Java反射机制学习总结,附带程序示例。

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    Java编程老鸟潜心写作,奉献高效率的Java学习心得 完全站在没有编程经验读者的角度,手把手教会读者学习Java 配16小时多媒体教学视频,高效、直观 一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    Java编程老鸟潜心写作,奉献高效率的Java学习心得 完全站在没有编程经验读者的角度,手把手教会读者学习Java 配16小时多媒体教学视频,高效、直观 一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让...

    ROS机器人学习小结.docx

    ROS机器人学习小结全文共9页,当前为第1页。ROS机器人学习小结全文共9页,当前为第1页。ROS机器人学习小结 ROS机器人学习小结全文共9页,当前为第1页。 ROS机器人学习小结全文共9页,当前为第1页。 Ros简介 ROS是一...

    java个人总结,觉得还不错

    java资料总结:java两种核心机制:JAVA虚拟机,垃圾收集机制。 一个源文件中最多只能有一个pubilc class类 public static void main(String args[]){...} 。。。。。。。。。。。。。。。

    Java服务器程序设计

    用java进行客户端的applet (小程序)开发的技术已广为使用,而用java进行服务器端的servlet(服务器小程序)开发则尚需揭开其神秘的面纱,本书正是基于这样的目的编写的。全书从java服务器的体系...15.6 小结[/font]

    疯狂JAVA讲义

    学生提问:老师,我想学习Java编程,到底是学习Eclipse好呢,还是学习JBuilder好呢? 21 1.9 本章小结 22 本章练习 22 第2章 理解面向对象 23 2.1 面向对象 24 2.1.1 结构化程序设计简介 24 2.1.2 程序的三种...

    21天学通Java-由浅入深

    162 8.5.8 重写equals方法 163 8.6 final与继承的关系 164 8.7 abstract与继承的关系 165 8.8 什么是多态 166 8.9 什么是枚举类 168 8.10 什么是反射机制 169 8.11 什么是泛型 170 8.12 综合练习 172 8.13 小结 172 ...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    3.1 JSF事件机制 118 3.1.1 Java事件模型概述 118 3.1.2 Java事件模型示例 119 3.1.3 JSF事件模型 120 3.1.4 Action事件 122 3.1.5 值改变事件 125 3.1.6 生命周期事件 128 3.1.7 将监听器绑定到Bean属性 130 3.2 ...

    Java中String类和IO流——学习小结

    字符串重新赋值不是修改,而是生成了一个新的字符串,原先的字符串依旧在内存中,但是引用变量不再指向它,过后原字符串因没被使用也会被Java GC机制回收。 1.2String类的比较方式 比较方式有两种 == 比较两个变量...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    1.11 小结 36 第2章 xml名称空间 38 2.1 声明名称空间 38 2.2 名称空间在元素和属性中的运用 39 2.2.1 名称空间在元素中的运用 39 2.2.2 默认名称空间 41 2.2.3 名称空间在属性中的运用 42 2.3 名称空间和dtd...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    1.11 小结 36 第2章 xml名称空间 38 2.1 声明名称空间 38 2.2 名称空间在元素和属性中的运用 39 2.2.1 名称空间在元素中的运用 39 2.2.2 默认名称空间 41 2.2.3 名称空间在属性中的运用 42 2.3 名称空间和dtd...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    1.11 小结 36 第2章 xml名称空间 38 2.1 声明名称空间 38 2.2 名称空间在元素和属性中的运用 39 2.2.1 名称空间在元素中的运用 39 2.2.2 默认名称空间 41 2.2.3 名称空间在属性中的运用 42 2.3 名称空间和dtd...

    JavaSE基础学习笔记

    Java程序运行机制 数据类型 变量 变量作用域 常量final 变量的命名规范 运算符 for循环 增强for循环 break continue 练习 Java的方法 1、何谓方法 2、方法的定义 方法调用 练习:比大小 面试题: 3、方法的重载 4、...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    1.11 小结 36 第2章 xml名称空间 38 2.1 声明名称空间 38 2.2 名称空间在元素和属性中的运用 39 2.2.1 名称空间在元素中的运用 39 2.2.2 默认名称空间 41 2.2.3 名称空间在属性中的运用 42 2.3 名称空间和dtd...

    java认证所有课程

    本模块讨论了事件驱动的图形用户界面(GUI)的用户输入机制。 第一节 相关问题 讨论 - 以下为与本模块内容有关的问题: - 哪些部分对于一个图形用户界面来说是必需的? - 一个图形化程序如何处理鼠标点击或者其他...

    《Java程序设计案例教程》课程标准.doc

    通过本教材的学习,学生将了解有关Java的各种先进技术,掌握网络环境下应 用的开发机制,熟练掌握使用Java开发独立的桌面应用程序;同时了解Java安全应用等 方面的知识,为进一步学习信息安全技术方向的课程打好基础...

Global site tag (gtag.js) - Google Analytics