事件监听

简介: 事件监听

事件监听:当某个事件发生的时候,运行程序在干什么。如:点击按钮,输出hello;通过上下左右键控制方向等…

如:按下按钮,输出框输出hello

package 狂神说__Listener;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class TestActionEvent {
    public static void main(String[] args) {
        Frame frame = new Frame();
        Button button = new Button();
        MyActionListener myActeionListener=new MyActionListener();
        button.addActionListener(myActeionListener);//需要一个接口
        frame.add(button,BorderLayout.CENTER);
        frame.setBackground(Color.blue);
        frame.setBounds(200,200,600,400);
        frame.setVisible(true);
        windowsClose(frame);
    }
    //关闭窗口
    private static void windowsClose(Frame frame){
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
}
class MyActionListener implements ActionListener{

    @Override
    public void actionPerformed(ActionEvent actionEvent) {
        System.out.println("hello word!");
    }
}

如:输入框的文字被监听,在输入框中输入文字,按下Enter键就会在输入区内输出文本框内容

package 狂神说__Listener;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class TestAction {
    public static void main(String[] args) {
        Myframe myframe = new Myframe();
        windowsClose(myframe);
    }
    private static void windowsClose(Myframe frame){
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
}
static class Myframe extends Frame{
    public Myframe(){
        TextField textField = new TextField();
        this.add(textField);
        //监听文本框输入的汉字
        MyActionListener1 myActionListener1 = new MyActionListener1();
        //按下enter,就会触发输入框事件
        textField.addActionListener(myActionListener1);

        setVisible(true);
        setBounds(300,300,200,200);
    }

    }
}

class MyActionListener1 implements ActionListener{

    @Override
    public void actionPerformed(ActionEvent actionEvent) {
        //获得资源,返回对象
        TextField field=(TextField)actionEvent.getSource();
        System.out.println(field.getText());
        field.setText("");//Enter键触发后,文本框的内容会被清空
    }
}

相关文章
|
20天前
|
JavaScript 前端开发
除了点击事件,`addEventListener` 还能用于处理哪些事件类型?
【10月更文挑战第29天】 `addEventListener` 能够处理的事件类型非常丰富,涵盖了各种用户交互和页面状态变化的场景,通过合理地使用这些事件类型,可以为网页或应用程序添加丰富多样的交互效果和功能。
|
20天前
|
JavaScript 前端开发
除了 `addEventListener` 方法,还有哪些方式可以为元素添加事件监听器?
【10月更文挑战第29天】虽然存在多种为元素添加事件监听器的方式,但 `addEventListener` 方法因其具有更好的兼容性、灵活性和可维护性,成为了现代JavaScript开发中添加事件监听器的首选方式。在实际项目中,应尽量使用 `addEventListener` 来实现事件绑定,以提高代码的质量和可维护性,并确保在不同浏览器中的一致性表现。
|
3月前
|
JavaScript 前端开发
绑定事件的方法有几种?
绑定事件的方法有几种?
|
6月前
|
JavaScript 前端开发 编译器
方法事件处理器
方法事件处理器
|
6月前
|
前端开发 JavaScript UED
Vue3中的事件处理:事件绑定、事件修饰符、自定义事件
Vue3中的事件处理:事件绑定、事件修饰符、自定义事件
305 0
|
JavaScript 前端开发 API
JavaScript事件处理:探索DOM事件和事件监听器
JavaScript事件处理:探索DOM事件和事件监听器
86 0
|
JavaScript 前端开发
36Vue - 事件处理器(监听事件)
36Vue - 事件处理器(监听事件)
29 0
|
JavaScript 前端开发
37Vue - 事件处理器(方法事件处理器)
37Vue - 事件处理器(方法事件处理器)
37 0
|
JavaScript API
js: 添加事件监听addEventListener、移除事件监听removeEventListener
js: 添加事件监听addEventListener、移除事件监听removeEventListener
140 0
|
XML 缓存 NoSQL
事件监听思考
在整合在项目中,我们通常需要基于事件去触发另外的业务逻辑动作的完成。也即在我们做需求时,通常会基于不同的事件码来完成业务处理,此时可以考虑将其单独处理,基于观察者模式+策略模式。还有一种如果当Spring完成Bean的初始化,需要做一些特殊处理,此时除了使用InitializingBean,还可以使用监听完成一些定制化的初始化动作,实现ApplicationListener<ContextRefreshedEvent>。
128 0
事件监听思考