• java学习:AWT组件和事件处理的笔记(1)--文本框上的ActionEvent事件


    学习处理事件时,必须很好的掌握事件源,监视器,处理事件的接口
        1.事件源
            能够产生java认可事件的对象都可称为事件源,也就是说事件源必须是对象
        2.监视器
            监视事件源,以便对发生的事件做出处理
            如:对文本框,这个方法为:
                addActionListener(监视器);
        3.处理事件的接口
            为了让监视器这个对象能对事件源发生的事件进行处理,创建该监视器对象的类必须声明实现相应的接口,即必须在类体中给出该接口中所有方法的方法体
            java.awt.event包中提供了许多事件类和处理各种事件的接口。
                对于文本框,这个接口的名字是ActionListener,这个接口的唯一方法为:public void actionPerformed(ActionEvent e)
            为了能监视到ActionEvent类型的事件,事件源必须使用addActionListener方法获得监视器,创建监视器的类必须实现接口ActionListener
            ActionEvent类有如下常用方法:
                1.   public Object getSource()
                        ActionEvent对象调用该方法可以获取发生ActionEvent事件的事件源对象的引用
                2. public String getActionCommand()
                        ActionEvent对象调用该方法可以获取发生ActionEvent事件时,和该事件相关的一个命令字符串
        注意:创建监视器对象的类必须声明实现相应的接口:
            class A implements xxxListener
    实战演练:当用户在文本框text1中输入英语单词并按Enter键,文本框text3中立即显示汉语意思;在文本框text2中中输入汉语单词并按Enter键后,文本框text3中立即显示英文意思

    代码如下:

    import java.awt.*;
    import java.awt.event.*;
    class Mywindow extends Frame implements ActionListener
    {
        TextField text1,text2,text3;
        Mywindow(String s){
            setTitle(s);
            setLayout(new FlowLayout());
            text1=new TextField(8);
            text2=new TextField(8);
            text3=new TextField(15);
            add(text1);
            add(text2);
            add(text3);
            text1.addActionListener(this);
            text2.addActionListener(this);
            setBounds(100,100,150,150);
            setVisible(true);
            validate();
        }
        public void actionPerformed(ActionEvent e){
            if(e.getSource()==text1)
            {
                String word=text1.getText();
                if(word.equals("boy"))
                {
                    text3.setText("男孩");
                }
                else if(word.equals("girl"))
                {
                    text3.setText("女孩");
                }
                else if(word.equals("sun"))
                {
                    text3.setText("太阳");
                }
                else
                {
                    text3.setText("没有该单词");
                }
    
            }
            else if(e.getSource()==text2)
            {
                String word=text2.getText();
                if(word.equals("男孩"))
                {
                    text3.setText("boy");
                }
                else if(word.equals("女孩"))
                {
                    text3.setText("girl");
                }
                else if(word.equals("太阳"))
                {
                    text3.setText("sun");
                }
                else 
                {
                    text3.setText("没有该单词");
                }
                
            }
        }
    }
    public class Example3
    {
        public static void main(String[] args){
            Mywindow win=new Mywindow("汉英互译");
        }
    }

  • 相关阅读:
    mysql操作规范
    在线修改大表结构pt-online-schema-change
    MySQL 过滤复制
    IDEA “Cannot resolve symbol” 解决办法
    JAVA NIO Selector Channel
    Mysql二级索引
    技术选型关于redis客户端选择
    知乎上看到的一篇讲解Epoll的文章,较形象生动
    linux安装运行virtuoso数据库的详细过程
    go安装步骤(linux和Windows)
  • 原文地址:https://www.cnblogs.com/chen521/p/4109720.html
Copyright © 2020-2023  润新知