这里我们讲这个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('*');
就会变成密码输入栏,这句话是设置设置回显字符。