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”,如输入不符,则提示:
输入成功则显示画板界面:
程序结束!
相关推荐
### Java个人学习小结 #### Java发展史及重要里程碑 - **起源与发展**: Java 的起源可以追溯到 1992 年,当时的 Sun Microsystems 公司开发了一种名为 Oak 的编程语言,最初是为了家用电器的智能化而设计的。然而...
在Java学习过程中,创建一个简单的画图板是一个经典的练习项目,它可以帮助我们深入理解图形用户界面(GUI)的构建和事件处理机制。本篇小结将聚焦于如何使用Java实现一个基本的画图板,同时提供相关的源码分析。 1...
Java反射机制是Java编程语言中一个强大的工具,它允许程序在运行时动态地获取类的信息并操作类的对象。反射机制的核心在于java.lang.reflect包中的API,主要包括Class类、Constructor类、Method类和Field类。以下是...
### Java多线程小结 #### 一、多线程的概念与意义 多线程是Java编程中的一个重要概念,指的是程序在运行时可以同时执行多个线程的能力。它能够提高程序的性能,尤其是在多核处理器的环境下。多线程使得程序能够更...
本文档“JAVA程序:接口小结”很可能是对Java接口的全面总结,包含了相关的代码示例,帮助学习者深入理解和运用接口。 接口在Java中的主要特性包括: 1. **接口是完全抽象的**:接口中的所有方法默认都是抽象的,...
Java是世界上最流行的编程语言之一,尤其在企业级应用开发中占据主导地位。...这只是Java J2SE和J2EE学习中的一小部分,要成为一名出色的Java开发者,还需要不断深入学习和实践,掌握更多的高级特性、框架和最佳实践。
Java编程老鸟潜心写作,奉献高效率的Java学习心得 完全站在没有编程经验读者的角度,手把手教会读者学习Java 配16小时多媒体教学视频,高效、直观 一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让...
在Java中,类是对象的蓝图,通过接口实现多继承,而异常处理和垃圾回收机制则提供了强大的错误处理和内存管理能力。 C#,由微软公司开发,主要用于.NET框架,同样是一种面向对象的语言,但更专注于Windows环境。C#...
Java基础是编程学习的重要部分,尤其对于初学者来说,掌握好Java基础知识至关重要。这篇文档将对Java的基础知识进行深入解析,包括语法、类与对象、数据类型、控制结构、异常处理以及常用工具的使用。 首先,Java是...
Java编程老鸟潜心写作,奉献高效率的Java学习心得 完全站在没有编程经验读者的角度,手把手教会读者学习Java 配16小时多媒体教学视频,高效、直观 一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让...
这个"java基础知识从业必备知识点结构图小结.rar"压缩包文件,通过图像化的方式,帮助初学者和从业者快速概览Java的主要知识点,并提供了进一步学习的方向。无论是初入Java殿堂的新手,还是需要巩固基础的开发者,都...
【Java开发经验总结】 在Java开发中,良好的编程习惯和高效的设计原则对于代码质量和性能至关重要。以下是一些从编码规范到性能...在实际开发中,不断学习和总结,持续优化代码,是成为一个优秀Java开发者的必经之路。
### Java核心机制与基础知识梳理 #### Java虚拟机(JVM) Java虚拟机是Java的核心机制之一,它是一种抽象计算机,负责执行Java字节码。Java程序编译后的字节码文件(.class)可以在任何安装了Java运行环境的平台上...
通过深入学习这些知识点,并结合思维导图,可以帮助开发者更好地理解和管理Java线程,提高程序的并发性能和稳定性。在实际开发中,要根据需求选择合适的方式来创建和管理线程,避免线程安全问题和过度使用线程导致的...
### Java学习笔记(必看经典) #### 面向对象编程基础 面向对象编程(OOP)是一种编程范式,它将计算机程序设计成由一系列相互交互的对象组成,这些对象通过消息传递来完成任务。与传统的面向过程编程相比,面向对象...
- 学习布局管理器和事件处理机制。 - 应用Swing组件实现简单的图形化用户界面。 **实验内容:** - 开发一个程序,实现对输入英文单词的字典排序功能。 - 用户界面包含两个文本域:一个用于输入单词,另一个用于显示...
- 课程设计报告要求包含目录、绪论、正文、小结、参考文献和附录等部分,这是对项目进行总结和记录的重要环节,有助于提升学生的书面表达和文档组织能力。 7. **创新点**: - 完成基本功能的基础上,鼓励学生进行...
UML表示法小结中包括类图、顺序图、活动图和状态图,这些是理解面向对象设计的基础工具。而面向对象设计模式则是软件工程中解决特定问题的模板或通用解决方案。 在Java程序设计基础篇中,介绍了Java的基本概念,...