事件监听
我们要监听事件就要知道什么时候会产生事件,当我我们知道了哪些时候会产生事件的时候我们才可以去针对的设置监听
- 比如我们使用按钮,点击这个按钮的时候就会出现一个事件然后如果我们这个时候给这个按钮加了事件监听,这个时候就能捕捉到产生的事件
- 比如我们在文本框中输入信息的时候也会触发时间
这个时候就涉及到了时间源,我们的事件就是通过事件源产生的
那么我们如果给一个事件源添加一个时间监听?
- 使用addActionListener()方法就可以给这个调用者添加一个事件监听器
- 这个方法的参数为:ActionListener接口的实现类类型
- 我们的ActionListener接口的实现类要重写这个接口中的抽象方法
- 只有一个public void actionPerformed()抽象方法我们要去重写
- 这个方法中要去写一些如果我们监听到这个时间的时候要做的事情
- 比如这个时候我们就监听了这个文本框,这个时候一旦我们在这个文本框中点击enter,这个时候就会进行删除操作,就实现了一旦回车就清空的目的
eg: 这里我们举一个例子 ---- 给一个文本框添加一个时间监听,每当这个文本框中添加一个文本,这个时候就将这个文本框中输入的文本变成’*’,也就是使用’ *'来代替
- 也就是这里我们创建一个TextField对象来实现JTextField对象的功能
- 这里我们使用的是TextField类来而不是使用JTextField类,因为我们的TextField类中有一个setEchoChar()方法,这个方法就是专门用来设置替换字符的,而我们的JTextField类中没有这个方法
package 用户图形界面;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Demo1 extends JFrame {
public Demo1(){
/*
这里我们创建了一个TextField对象,就是创建了一个文本框
*/
TextField j1 = new TextField(15);
//调用这个TextField对象的setEchochar()方法来设置代替我们输入的文本的字符
j1.setEchoChar('*');
//给我们的这个文本框添加了一个事件监听(这是最基本的一个监听)
j1.addActionListener(new MyActionListener());
Container contentPane = this.getContentPane();
contentPane.add(j1);
pack(); //自动调节大小
setVisible(true);
}
/**
这里创建了一个类来实现ActionListener接口,这个时候我们的这个类就是一个事件监听器对象
*/
class MyActionListener implements ActionListener {
public void actionPerformed(ActionEvent e){
Object source = e.getSource();
TextField j = (TextField)source;
j.setText("");
}
}
public static void main(String[] args) {
new Demo1();
}
}