java中事件监听器
来源:互联网 发布:阿里云香港主机 编辑:程序博客网 时间:2024/05/28 04:54
【转自】http://blog.sina.com.cn/s/blog_7beb545901019010.html
1.AWT的事件类型及其监听器
(1)WindowEvent窗口事件
引发原因:窗口操作
事件监听接口是WindowListener
接口的方法包括7个:
1)windowActivated(WindowEvent e) //激活窗口
2)windowClosed(WindowEvent e) //调用dispose方法关闭窗口后
3)windowClosing(WindowEvent e) //试图利用窗口关闭框关闭窗口
4)windowDeactivated(WindowEvent e) //本窗口成为非活动窗口
5)windowDeiconified(WindowEvent e) //窗口从最小化恢复为普通窗口
6)windowIconified(WindowEvent e) //窗口变为最小化图标
7)windowOpened(WindowEvent e) //当窗口第一次打开成为可见时
接口适配器: WindowAdapter
注册窗口事件的方法: addWindowListener
(2)ActionEvent活动事件
引发原因: 单击按钮、双击列表框中的选项、选择菜单项、在文本框中回车
事件监听接口: ActionListener
接口方法: actionPerformed(ActionEvent e)
注册事件方法: addActionListener
(3)TextEvent文本事件
引发原因: 文本框或文本区域内容改变
事件监听接口: TextListener
接口方法: textValueChanged(TextEvent e)
注册事件方法: addTextListener
(4)ItemEvent选项事件
引发原因: 改变列表框中的选中项,改变复选框选中状态,改变下拉列表的选中项
事件监听接口: ItemListener
接口方法: itemStateChanged(ItemEvent e)
注册事件方法: addItemListener
(5)AdjustmentEvent调整事件
引发原因: 操作滚动条以身改变滑块位置
事件监听接口: AdjustmentListener
接口方法: adjustmentValueChanged(AdjustmentEvent e)
注册事件方法: addAdjustmentListener
(6)KeyEvent键盘事件
引发原因有三种:
1)按下并释放键
2)按下键
3)释放键
事件监听接口: KeyListener
接口方法包括三种:
1)keyPressed(KeyEvent e) //键已被按下时调用
2)keyReleased(KeyEvent e) //键已被释放时调用
3)keyTyped(KeyEvent e) //键已被按下并释放时调用
KeyEvent方法: char ch = e.getKeyChar();
事件监听适配器(抽象类): KeyAdapter
注册事件方法: addKeyListener
(7) MouseEvent事件
引发原因: 鼠标作用在一个组件上
鼠标事件: 鼠标键按下,鼠标键抬起,单击鼠标键,鼠标指针进入一个组件,鼠标指针离开一个组件
鼠标移动事件: 鼠标移动,鼠标拖动
鼠标事件监听接口1: MouseListener //接受鼠标事件
该接口方法包括三种:
1)mouseClicked(MouseEvent e)
2)mouseEntered(MouseEvent e)
3)mouseExited(MouseEvent e)
鼠标事件监听适配器(抽象类):MouseAdapter
注册鼠标事件方法: addMouseListener
鼠标事件监听接口2: MouseMotionListener
该接口方法:
1)mouseMoved(MouseEvent e)
2)mouseDragged(MouseEvent e)
鼠标移动事件监听适配器: MouseMotionAdapter
注册鼠标移动事件方法: addMouseMotionListener
MouseEvent方法:
1)e.getClickCount() //1为单击,2为双击
2)Point e.getPoint() //取鼠标指针位置
3)int e.getX()和int e.getY()//取鼠标指针位置
e.getMotifiers() = e.BUTTON1_MASK //取标左键
= e.BUTTON3_MASK //取标右键
(8)FocusEvent 焦点事件
引发原因: 组件获得焦点,组件失去焦点
事件监听接口: FocusListener
接口方法:
1)focusGained(FocusEvent e)
2)focusLost(FocusEvent e)
接口适配器:FocusAdapter
注册事件方法: addFocusListener
(9)ComponentEvent组件事件
引发原因: 当组件移动,改变大小,改变面貌可见性时引发
事件监听接口: ComponentListener
接口方法:
1) componentHidden(ComponentEvent e) //组件隐藏
2) componentMoved(ComponentEvent e) //组件移动
3) componentResized(ComponentEvent e) ///组件改变大小
4) componentShown(ComponentEvent e) ///组件变为可见
接口适配器: ComponentAdapter
注册事件方法: addComponentListener
(10) ContainerEvent 容器事件
引发原因: 当容器内增加或移走组件时引发
事件监听接口: ContainerListener
接口方法包括:
1)componentAdded(ContainerEvent e) ///容器内加入组件
2)componentRemoved(ContainerEvent e) //从容器中移走组件
接口适配器: ContainerAdapter
注册该事件方法: addContainerListener
java事件处理机制-事件监听器的实现
在Java的swing编程中,Java中的事件机制非常常用。
事件监听器的参与者:
1.事件对象:
一般继承自java.util.EventObject对象,由开发者自行定义.
2.事件源:
就是触发事件的源头,不同的事件源会触发不同的事件类型.
3.事件监听器:
事件监听器负责监听事件源发出的事件.一个事件监听器通常实现java.util.EventListener这个标识接口.
其整个处理过程是这样的,事件源可以注册事件监听器对象,并可以向事件监听器对象发送事件对象.事件发生后,事件源将事件对象发给已经注册的所有事件监听器.
监听器对象随后会根据事件对象内的相应方法响应这个事件
自身类作为事件监听器 :
import javax.swing.*;import java.awt.*;import java.awt.event.*;/** *Java事件处理机制:自身类作为事件监听器 *@author Winty(wintys@gmail.com) *@version 2008-12-3 */class ThisClassEvent extends JFrame implements ActionListener{ JButton btn; public ThisClassEvent(){ super("Java事件监听机制"); setLayout(new FlowLayout()); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); btn=new JButton("点击"); btn.addActionListener(this); getContentPane().add(btn); setBounds(200,200,300,160); setVisible(true); } /**************************************/ public void actionPerformed (ActionEvent e){ Container c=getContentPane(); c.setBackground(Color.red); } /**************************************/ public static void main(String args[]){ new ThisClassEvent(); }}
外部类作为事件监听器
import java.awt.*;import java.awt.event.*;import javax.swing.*;/** *Java事件处理机制:外部类作为事件监听器 *@author Winty(wintys@gmail.com) *@version 2008-12-3 */class OuterClassEvent extends JFrame{ JButton btn; public OuterClassEvent(){ super("Java事件监听机制"); setLayout(new FlowLayout()); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); btn=new JButton("点击"); btn.addActionListener(new OuterClass(this)); getContentPane().add(btn); setBounds(200,200,300,160); setVisible(true); } public static void main(String args[]){ new OuterClassEvent(); }} /*外部类*********************************/class OuterClass implements ActionListener{ OuterClassEvent oce; public OuterClass(OuterClassEvent oce){ this.oce = oce; } public void actionPerformed(ActionEvent e){ Container c=oce.getContentPane(); c.setBackground(Color.red); }}
匿名内部类作为事件监听器 :
import java.awt.*;import java.awt.event.*;import javax.swing.*;/** *Java事件处理机制:匿名内部类作为事件监听器 *@author Winty(wintys@gmail.com) *@version 2008-12-3 */class AnonymousEvent extends JFrame{ JButton btn; public AnonymousEvent(){ super("Java事件监听机制"); setLayout(new FlowLayout()); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); btn=new JButton("点击"); /*匿名内部类******************************/ btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ Container c=getContentPane(); c.setBackground(Color.red); } } ); /***************************************/ getContentPane().add(btn); setBounds(200,200,300,160); setVisible(true); } public static void main(String args[]){ new AnonymousEvent(); }}
内部类作为事件监听器:
import java.awt.*;import java.awt.event.*;import javax.swing.*;/** *Java事件处理机制:内部类作为事件监听器 *@author Winty(wintys@gmail.com) *@version 2008-12-3 */class InnerClassEvent extends JFrame{ JButton btn; public InnerClassEvent(){ super("Java事件监听机制"); setLayout(new FlowLayout()); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); btn=new JButton("点击"); btn.addActionListener(new InnerClass()); getContentPane().add(btn); setBounds(200,200,300,160); setVisible(true); } /*内部类*********************************/ class InnerClass implements ActionListener{ public void actionPerformed (ActionEvent e){ Container c=getContentPane(); c.setBackground(Color.red); } } /**************************************/ public static void main(String args[]){ new InnerClassEvent(); }}
- java中事件监听器
- Java中事件监听器的实现
- java 事件监听器 适配器
- JAVA事件及监听器
- java事件监听器
- java awt 事件监听器
- JAVA事件监听器
- Java事件监听器
- Java事件和监听器
- Java AWT事件监听器
- Java GUI事件监听器
- java事件监听器
- Java 事件监听器
- 事件监听器_Demo01.java
- 事件监听器_Demo02.java
- 事件监听器_Demo03.java
- Java事件监听器模式
- java事件监听器原理
- 接口自动化测试第一步
- Navicat修改编码(SQL Error: 1366: Incorrect string value)
- 安卓文件存储
- 华为OJ-删除字符串中出现次数最少的字符
- SparseArray<E>详解 在一些情况下可以代替HashMap提高性能
- java中事件监听器
- Oracle PlSql 问题集锦 - 数字或值错误:字符串缓冲区太小【ORA-06502】
- "此实现不是 Windows 平台 FIPS 验证的加密算法的一部分"解决办法
- Android 性能优化之使用线程池处理异步任务
- java集合中对象某属性比较排序Comparable与Comparator
- 用gradle打包android_apk时遇到的一些问题
- leetcode刷题之旅——474. Ones and Zeroes
- 超前进位加法器
- 关键字+静态+访问权限+内部类