java中的事件监听机制
来源:互联网 发布:淘宝店铺自定义装修 编辑:程序博客网 时间:2024/05/17 09:27
java中的事件监听机制:
1:简单的按钮事件监听
说明:比如为按钮添加事件监听机制,首先得给它安上个monitor,通过addActionListener
函数,添加上,之后如果你点击了按钮,监听器就可以监听到这个事件,并且激活某种
动作,按钮的动作就是重写actionPerformed函数,也就是,如果你点击了按钮就会回掉
actionPerformed函数
代码:
<span style="font-size:18px;"><span style="font-size:24px;">import java.awt.*;import java.awt.event.*;public class TestEvent{public static void main(String args[]){MyFrame myFrame = new MyFrame();Button btn = new Button("Test");btn.setBounds(200, 200, 50, 50);btn.addActionListener(new Monitor());myFrame.add(btn);}}class MyFrame extends Frame{MyFrame(){setBounds(700, 200, 600, 600);setBackground(Color.blue);setLayout(null);setVisible(true);}}class Monitor implements ActionListener{public void actionPerformed(ActionEvent e){System.out.println("Successful");}</span><span style="font-size:24px;">}</span></span>
2:内部类在事件监听中的作用
有时候,我们的监听器的响应函数要访问事件源的成员方法或者成员对象,这时候
外部定义监听器类就不好用了,虽然可以通过getSource();函数但是还是不方便,
这时定义内部类就有必要了,首先无限制得可以访问成员函数,成员变量,
还有可以把内部类设置为private防止别人访问你的监听器类,我这个程序定义
了两个嵌套类
<span style="font-size:18px;">import java.awt.*;import java.awt.event.*;public class TestEvent{public static void main(String args[]){MyFrame myFrame = new MyFrame();}}class MyFrame extends Frame{MyFrame(){setBounds(700, 200, 800, 600);setBackground(Color.blue);setLayout(new BorderLayout());this.add(new panel(), BorderLayout.CENTER);setVisible(true);}class panel extends Panel{TextField textField[]; //创建数组引用Button btn;panel(){this.setLayout(new FlowLayout(FlowLayout.CENTER));TextField textFieldTemp[] = {new TextField(12),new TextField(12),new TextField(12),};for(TextField i : textFieldTemp){i.setFont(new Font("宋体", 1, 22));}textField = textFieldTemp;Label label = new Label("+", Label.CENTER);label.setFont(new Font("宋体", 1, 22));btn = new Button("=");btn.setFont(new Font("宋体", 1 , 22));btn.addActionListener(new Monitor());this.add(textField[0]);this.add(label);this.add(textField[1]);this.add(btn);this.add(textField[2]);}class Monitor implements ActionListener{public void actionPerformed(ActionEvent e){int a = Integer.parseInt(textField[0].getText());int b = Integer.parseInt(textField[1].getText());int c = a + b;textField[2].setText("" + c);}}}}</span>
3:Listener的适配器类, 和内部类在事件监听中应用
说明:按照常理来说,如果你要为某个事件源添加监听器接口,你要实现其所有的方法
这势必造成麻烦,所以java提供了监听器的适配器类,这个类实现了Listener接口的所有方法,
这个实现只是, function{ }; ,并没有具体的内容,所以你要添加监听的时候
只需要继承这个类,然后重写你要监听的事件的函数!这样很方便
内部类可以在new类的时候,直接建立这个类的模型,我下面的类可以很清楚看出这一点
<span style="font-size:18px;">import java.awt.*;import java.awt.event.*;import java.util.*;public class TestFaceless{public static void main(){new frame();}}class frame extends Frame{ArrayList<Point> arrayList;frame(){setBounds(700, 200, 600, 600);setBackground(Color.white);setVisible(true);this.addMouseListener(new MouseAdapter(){ //一个内部类, 又是一个Listener适配器public void mouseClicked(MouseEvent e) { Frame f = (Frame) e.getSource();int x = e.getX();int y = e.getY();addPoint(new Point(x, y));f.repaint();}});}public void addPoint(Point point){arrayList.add(point);}public void paint(Graphics g) //重画函数{g.setColor(Color.black);Iterator<Point> it1 = arrayList.iterator();while(it1.hasNext()) {Point p = it1.next();int a = p.getX(); int b = p.getY();g.fillOval(a, b, 10, 10);}}}</span>
0 0
- Java 中的事件监听机制
- java中的事件监听机制
- java事件监听机制
- java事件监听机制
- tomcat 中的事件监听机制
- Java中的事件监听
- java中的事件监听
- 再谈java事件监听机制
- 再谈java事件监听机制
- 再谈java事件监听机制
- 再谈java事件监听机制
- day22/事件监听机制.java
- 再谈java事件监听机制
- JAVA的事件监听机制
- java(6)--事件监听机制
- java中事件监听机制
- java事件监听机制 概述
- Java的事件监听机制
- [RK3288][Android6.0] Display驱动初始化流程小结
- 九九乘法表
- devAid-Theme
- JAVA EE-JSP
- UGUI内核大探究(十七)拾遗补缺
- java中的事件监听机制
- mysql windows zip安装
- 知识积累3:什么是反向代理,如何区别反向与正向代理
- 【线段树】[CodeForces - 717F]Heroes of Making Magic III
- DP题目 创意吃鱼法
- codeforces #720 720A 720B
- 如何录屏制作gif图片
- NHibernate 操作存储过程
- API GUIDE ---- AIDL