JAVA事件机制_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > JAVA事件机制

JAVA事件机制

 2013/11/22 0:25:48  湖大-软件-杨锦涛  程序员俱乐部  我要评论(0)
  • 摘要:事件机制:关键词:事件源,监听器方法实现事件的流程:1.确定事件源2.给事件源添加监听器方法3.创建类事项对应接口,并实现抽象方法4.创建事件处理者的对象,讲对象绑定到监听器方法上接下来明确关键字的定义:(1)事件源:定义:所有触发对应动作的的图形界面组件对象(就是说动作发生在谁上,谁就是事件源)(2)监听器方法:对一个事件进行监听的对象,在事件源发生动作时,做出反应。监听器类型:addActionListener()ActionListener动作监听器接口addMouseListener(
  • 标签:事件 Java

事件机制:
?关键词:事件源,监听器方法
?实现事件的流程:
??1.确定事件源
??2.给事件源添加监听器方法
??3.创建类事项对应接口,并实现抽象方法
??4.创建事件处理者的对象,讲对象绑定到监听器方法上

接下来明确关键字的定义:

(1)事件源:
?定义:所有触发对应动作的的图形界面组件对象(就是说动作发生
在谁上,谁就是事件源)

(2)监听器方法:对一个事件进行监听的对象,在事件源发生动作时,做出
反应。
?监听器类型:
addActionListener() ??ActionListener??动作监听器接口
addMouseListener()??MouseListener??鼠标监听器接口
addMouseMotionListener()?MouseMotionLIstener?鼠标移动监听器接口
addKeyListener()??KeyListener??键盘监听器接口

在监听器接到动作指令后便会调用一系列的方法,这就是监听器方法

(3)事件处理类:
?接口是不能实例化对象的,所以要一个类来实现它,然后再通过类
来调用接口中的抽象方法,这就是事件处理者

流程:确定事件源-->创建事件处理类-->实例化监听器-->绑定监听对象-->
动作命令出现-->触发事件源-->触发监听器-->实现监听器方法

以下为代码:实现界面登陆

界面实现:
package cn.xxj.lesson05;

import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

/**
?* 简单登录界面类
?*
?* @author xxj
?*
?*/
public class Login {
?// 程序的入口主函数
?public static void main(String[] args) {
??// 实例化一个Login类的对象
??Login log = new Login();
??// 调用初始化界面的方法
??log.initUI();
?}

?private JTextField jtePwd = null;
?
?// 初始化界面的方法
?public void initUI() {
??// 实例化一个JFrame类的对象
??JFrame jf = new JFrame();
??// 设置jf对象的属性值
??jf.setTitle("简单登录界面");// 设置标题
??// 设置jf对象的大小 单位是像素点
??jf.setSize(300, 200);
??// 设置禁止用户调整窗体的大小
??jf.setResizable(false);
??// 设置窗体显示在屏幕的中央
??jf.setLocationRelativeTo(null);
??// 设置关闭窗体的时候把程序退出
??jf.setDefaultCloseOperation(3);

??//实例化一个FlowLayout类的对象
??FlowLayout fl = new FlowLayout();
??//设置窗体的布局方式为流式布局
??jf.setLayout(fl);
??
??// 实例化一个JLabel对象
??JLabel jlaName = new JLabel("账号:");
??// 将对象添加到窗体上
??jf.add(jlaName);

??// 实例化一个JTextField对象
??JTextField jteName = new JTextField(20);
??
??jf.add(jteName);

??// 实例化一个JLabel对象
??JLabel jlaPwd = new JLabel("密码:");
??// 将对象添加到窗体上
??jf.add(jlaPwd);

??// 实例化一个JTextField对象
??jtePwd = new JTextField(20);
??jf.add(jtePwd);
??
??//实例化一个JButton类的对象
??JButton jbuLogin = new JButton("登录");
??jbuLogin.setActionCommand("Login");
??jf.add(jbuLogin);

??System.out.println("===>>>"+jtePwd);
??//实例化一个事件处理类的对象
??LoginListener ll = new LoginListener(jf,jteName,jtePwd);
??
??//给事件源添加监听器方法
??jbuLogin.addActionListener(ll);
??jtePwd.addActionListener(ll);


??// 设置窗体为可见的。
??jf.setVisible(true);

??String [] array = {
????"MC","MR","MS","M+"
??};
??for(int i=0;i<array.length;i++){
???JButton jbu = new JButton(array[i]);
???jf.add(jbu);
??}
?}

}

事件处理者:

package cn.yjt.study131109;

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JTextField;

/**
?* 登录的事件处理者类,该类要实现ActionListener接口
?* @author xxj
?*
?*/
public class LoginListener implements ActionListener {

?//定义账号和密码输入框对象属性
?private JTextField jteName,jtePwd;
?//登录界面窗体,现在是类的属性
?private JFrame login;
?
?/**
? * 构造方法
? * @param jteName账号输入框对象
? * @param jtePwd密码输入框对象
? */
?public LoginListener(JFrame login,JTextField jteName,JTextField jtePwd){
??this.jteName = jteName;
??this.jtePwd = jtePwd;
??this.login = login;
?}
?
?/**
? * 重写ActionListener接口中抽象事件处理方法
? * @param e事件对象,事件对象中会存储事件源对象和事件源的动作命令字符串
? */
?@Override
?public void actionPerformed(ActionEvent e) {
??

??String name = jteName.getText();
??String pwd = jtePwd.getText();
??
??
??//输出 事件源的动作命令值。
??//System.out.println(e.getActionCommand());
??System.out.println("name = "+name+"??? pwd = "+pwd);
??if(name.equals("admin") && pwd.equals("admin")){
???JFrame jf = new JFrame("登录成功");
???jf.setSize(new Dimension(600,500));
???jf.setDefaultCloseOperation(3);
???jf.setVisible(true);
???login.dispose();
??}else{
???JFrame jf = new JFrame("登录失败");
???jf.setSize(new Dimension(200,200));
???jf.setDefaultCloseOperation(3);
???jf.setVisible(true);
??}
?}

}


以上代码个人编写,如有雷同不胜荣幸!

发表评论
用户名: 匿名