java中的事件监听机制
2016-09-20 15:50
357 查看
java中的事件监听机制:
1:简单的按钮事件监听
说明:比如为按钮添加事件监听机制,首先得给它安上个monitor,通过addActionListener
函数,添加上,之后如果你点击了按钮,监听器就可以监听到这个事件,并且激活某种
动作,按钮的动作就是重写actionPerformed函数,也就是,如果你点击了按钮就会回掉
actionPerformed函数
代码:
2:内部类在事件监听中的作用
有时候,我们的监听器的响应函数要访问事件源的成员方法或者成员对象,这时候
外部定义监听器类就不好用了,虽然可以通过getSource();函数但是还是不方便,
这时定义内部类就有必要了,首先无限制得可以访问成员函数,成员变量,
还有可以把内部类设置为private防止别人访问你的监听器类,我这个程序定义
了两个嵌套类
3:Listener的适配器类, 和内部类在事件监听中应用
说明:按照常理来说,如果你要为某个事件源添加监听器接口,你要实现其所有的方法
这势必造成麻烦,所以java提供了监听器的适配器类,这个类实现了Listener接口的所有方法,
这个实现只是, function{ }; ,并没有具体的内容,所以你要添加监听的时候
只需要继承这个类,然后重写你要监听的事件的函数!这样很方便
内部类可以在new类的时候,直接建立这个类的模型,我下面的类可以很清楚看出这一点
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>
相关文章推荐
- 再谈java事件监听机制
- android网络监听事件机制(kernel, c++, java)
- JAVA事件处理,和事件监听机制
- JAVA的事件监听机制
- 关于JAVA中事件分发和监听机制实现的代码实例-绝对原创实用
- java事件监听机制
- 4.JAVA之GUI编程事件监听机制
- 创建图形用户界面GUI和事件监听机制的简单实现(java)
- JAVA 如何设置JTable的渲染器以及是否可编辑属性和其上的事件监听机制
- 再谈java事件监听机制
- java例程练习(事件监听机制)
- Java基础--Java---IO流------GUI(布局)、Frame、事件监听机制、窗体事件、Action事件、鼠标事件、对话框Dialog、键盘事件、菜单
- JAVA事件监听机制的实现
- android网络监听事件机制(kernel, c++, java)
- 创建图形用户界面GUI和事件监听机制的简单实现(java)
- 再谈java事件监听机制
- 再谈java事件监听机制
- 详解java的事件监听机制和观察者设计模式
- java实现简单的窗体和密码验证(传参,事件机制和事件监听的作用过程)
- day22/事件监听机制.java