事件处理机制的初步学习
来源:互联网 发布:网络审查的优缺点 编辑:程序博客网 时间:2024/05/22 00:53
/* * 事件处理机制 一个事件源可以有很多的监听着 一个普通的类也可以来监听事件 * 监听方法: Cat aa = new Cat(); * jb1.addActionListener(aa) */package com.shijianchuli;import java.awt.*;import javax.swing.*;import java.awt.event.*;public class Demo1 extends JFrame implements ActionListener{//定义一个panelPanel mp = null;JButton jb1 = null;JButton jb2 = null;public static void main(String[] args) {// TODO Auto-generated method stubDemo1 d = new Demo1();}public Demo1(){mp = new Panel();jb1 = new JButton("黑色");jb2 = new JButton("红色");Cat aa = new Cat();this.add(jb1,BorderLayout.NORTH);mp.setBackground(Color.BLACK);this.add(jb2,BorderLayout.SOUTH);this.add(mp);// 注册监听jb1.addActionListener(this);jb1.addActionListener(aa);// 指定 action 命令jb1.setActionCommand("黑色");jb2.addActionListener(this);jb2.setActionCommand("红色");this.setSize(300,200);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setVisible(true);}// 对事件处理方法 事件对象public void actionPerformed(ActionEvent e) {// TODO Auto-generated method stub//判断是哪个按钮被点击if(e.getActionCommand().equals("黑色")){System.out.println("点击黑色按钮");mp.setBackground(Color.BLACK);}else if(e.getActionCommand().equals("红色")){System.out.println("点击红色按钮");mp.setBackground(Color.RED);}else{System.out.println("不知道");}}}class Cat implements ActionListener{public void actionPerformed(ActionEvent arg0) {// TODO Auto-generated method stubif(arg0.getActionCommand().equals("黑色")){System.out.println("猫猫 黑色");}else if(arg0.getActionCommand().equals("红色")){System.out.println("猫猫 红色");}}}
事件源: JButton的对象 jb1,jb2
事件: ActionEvent的对象 e arg0
事件监听者: 类的对象 this- Demo1的对象d 和 Cat的对象 aa
/* * 功能: 加深对时间处理机制的理解 * 1. 通过上下左右按键来控制小球的运动 */package com.shijianchuli;import java.awt.*;import javax.swing.*;import java.awt.event.*;public class Demo2 extends JFrame{/** * @param args */MyPanel mp = null;public static void main(String[] args) {// TODO Auto-generated method stubDemo2 dd = new Demo2();}public Demo2(){mp = new MyPanel();this.add(mp);this.addKeyListener(mp);this.setSize(400,300);this.setVisible(true);}}class MyPanel extends JPanel implements KeyListener{//方法重写int x = 10;int y =10;public void paint(Graphics g){super.paint(g);g.fillOval(x, y, 10, 10);}public void keyPressed(KeyEvent e) {// TODO Auto-generated method stubSystem.out.println("按键被按下");if(e.getKeyCode() == KeyEvent.VK_DOWN){y++;}else if(e.getKeyCode() == KeyEvent.VK_UP){y--;}else if(e.getKeyCode() == KeyEvent.VK_RIGHT){x++;}else if(e.getKeyCode() == KeyEvent.VK_LEFT){x--;}this.repaint();}public void keyReleased(KeyEvent arg0) {// TODO Auto-generated method stub}public void keyTyped(KeyEvent arg0) {// TODO Auto-generated method stub}}
监听步骤: a 实现相应的接口 b 把接口的处理方法根据需要编写
c 注册监听 c-1 设置监听的command setActionCommand() getActionCommand()
注意: 1个事件源可以有多个事件监听者; 1个普通类也可以监听事件
0 0
- 事件处理机制的初步学习
- Libevent学习-----Reactor的事件处理机制
- AWT事件处理机制学习
- AWT事件处理机制学习
- androd 事件分发机制的初步理解
- 事件分发机制的初步了解
- 【末世旅行之Java】Java事件处理机制的学习
- java的事件处理机制
- Java的事件处理机制
- JavaScript的事件处理机制
- Java的事件处理机制
- java 的事件处理机制
- Java的事件处理机制
- C#的事件处理机制
- C#的事件处理机制
- Hibernate的事件处理机制
- Reactor的事件处理机制
- Redis的事件处理机制
- 连接池原理图.doc
- Java 线程池 发送邮件
- 【解决Android2.2开发时 在eclipse 中 file explorer视图不显示sdcard】
- android ui流畅度提示
- 超级块 i节点 数据块 目录块 间接块
- 事件处理机制的初步学习
- 电梯里引发的运营思考
- TextView 加链接所有方法
- 解决打开 layout下布局文件时eclipse死掉原因
- EmptyWorkingSet和内存整理
- 第4周作业-打字成绩判断程序
- 【Struts开发中谨慎使用全局变量】
- 软键盘默认输入模式是数字模式
- svn 回退命令(转)