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("漢英互譯");
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM