首页 > 代码库 > ActionEvent之TextField

ActionEvent之TextField

这里我们讲这个TestField类

也就是我们的输入框,什么输入密码,用户名什么的。

一些方法:

技术分享

技术分享

这里说到TestField也会有事件发生,就是当你在文本框敲回车的时候。

看个例子:

import java.awt.*;
import java.awt.event.*;

public class TFActionEvent {
    public static void main(String[] args) {
        new TFFrame();
    }
} 

class TFFrame extends Frame {
    TFFrame() {
        TextField tf = new TextField();//创建一个输入栏
        add(tf);//把这个输入栏加进去
        tf.addActionListener(new TFActionListener());
        pack();
        setVisible(true);    
    }
}

class TFActionListener implements ActionListener{
    public void actionPerformed(ActionEvent e) {//重写方法
        TextField tf = (TextField)e.getSource();//现在tf是指向同一个对象
        System.out.println(tf.getText());//将输入的内容打印出来
        tf.setText("");//将输入栏重新设为空        
    }
}

这里我们这个监听器对象要把frame里面那个的tf给读出来。可是我怎么才能读出来呢?这可是其他类里面的方法的局部变量啊。显然不可能。

幸好它会把事件的信息传过来。信息会封装到ActionEvent这个对象里面。然后它有一个方法叫做getSource()——叫拿到事件源。但是它拿到事件源之后是把它当作父类来看的。也就是返回一个Object类。所以要加个强制转换。

然后监听器的tf和TTFrame里的tf在内存里指向的就是同一个对象了。

如果再在 TFFrame里面加这句    tf.setEchoChar(‘*‘);  

就会变成密码输入栏,这句话是设置设置回显字符。

ActionEvent之TextField