AWT--事件監聽與輸入框監聽
阿新 • • 發佈:2022-05-06
事件監聽與輸入框監聽
事件監聽
- 事件監聽:當某個事件發生的時候,幹什麼?
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"); } }
- 多個按鈕共享一個事件
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 } } }