1. 程式人生 > 其它 >AWT--事件監聽與輸入框監聽

AWT--事件監聽與輸入框監聽

事件監聽與輸入框監聽

事件監聽

  1. 事件監聽:當某個事件發生的時候,幹什麼?
package com.deng.lesson2;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class TestActionEvent {
    public static void main(String[] args) {
        //按下按鈕,觸發一些事件
        Button button = new Button();
        Frame frame = new Frame();
        //因為addActionListener()需要一個ActionListener,所以我們需要構造一個ActionListener
        MyActionListener myActionListener = new MyActionListener();
        button.addActionListener( myActionListener );

        frame.add(button,BorderLayout.CENTER);
        frame.pack();
        frame.setVisible(true);
        windowClose(frame);//關閉視窗
    }
    //關閉視窗事件
    private static void windowClose(Frame frame){
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                super.windowClosing(e);
                System.exit(0);
            }
        });
    }
}
//事件監聽
 class MyActionListener implements ActionListener {

     @Override
     public void actionPerformed(ActionEvent e) {
         System.out.println("aaa");
     }
 }
  1. 多個按鈕共享一個事件
package com.deng.lesson2;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class TestActionTwo {
    public static void main(String[] args) {
        //兩個按鈕 實現同一個監聽
        //開始  停止
        Frame frame = new Frame("開始-停止");
        Button button1 = new Button("start");
        Button button2 = new Button("stop");

        //可以顯示的定義觸發會返回的命令, 如果不顯示定義,則會走預設值
        //可以多個按鈕只寫一個監聽類
        button2.setActionCommand("button2-stop");

        MyMonitor myMonitor = new MyMonitor();
        button1.addActionListener(myMonitor);
        button2.addActionListener(myMonitor);

        frame.add(button1,BorderLayout.NORTH);
        frame.add(button2,BorderLayout.SOUTH);
        frame.pack();
        frame.setVisible(true);

    }
}
class MyMonitor implements ActionListener{
    @Override
    public void actionPerformed(ActionEvent e) {
        //e.getActionCommand() 獲得按鈕的資訊
        System.out.println("按鈕被點選了:msg=>"+e.getActionCommand());
    }
}

輸入框 TextField 監聽

package com.deng.lesson2;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class TestText1 {
    public static void main(String[] args) {
        //啟動
        new MyFrame();
    }
}
class MyFrame extends Frame {
    public MyFrame() {
        TextField textField = new TextField();
        add(textField);

        //監聽這個文字框輸入的文字
        MyActionListener2 myActionListener2 = new MyActionListener2();
        //按下enter就會觸發這個輸入框事件
        textField.addActionListener(myActionListener2);

        //設定替換密碼
        textField.setEchoChar('*');

        setVisible(true);
        pack();

        //關閉事件視窗
        addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                super.windowClosing(e);
                System.exit(0);
            }
        });
    }

    class MyActionListener2 implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent e) {
            TextField Field = (TextField) e.getSource();//獲得一些資源,返回的一個物件
            System.out.println(Field.getText());//獲得輸入框文字
            Field.setText("");//null
        }
    }
}