• Java界面-AWT-事件监听


    Java界面—AWT之事件监听

    定义

    事件监听:事件源(例如文本框、按钮、文本域)可以注册事件监听器对象,并可以向事件监听器对象发送事件对象,事件发生后,事件源将事件对象发给已经注册的所有事件监听器,监听器对象会根据事件对象内的相应方法响应这个事件。简单来说,一旦用户执行某种行为,就会触发已经编写的相应事件。例如窗口关闭也是一种事件监听,一旦用户点击窗口右上角的“×”,则会触发关闭事件,窗口则会被关闭。

    示例

    这里定义了一个文本框、两个按钮,并将着三个组件添加进panel面板,最后将panel面板添加进窗口Frame。

    在文本框中输入文本,点击回车后,会在控制台输出文本框中的内容;

    点击按钮,会在控制台输出相应内容;

    package 事件监听;

    import java.awt.*;
    import java.awt.event.*;

    public class ActionTest {
       public static void main(String[] args) {
           //按下按键,触发一些事件
           Frame frame = new Frame();
           frame.setLayout(new FlowLayout());
           Panel panel = new Panel();
           TextField textField = new TextField();
           textField.setColumns(30);
           Button button = new Button("Red");
           Button button1 = new Button("Blue");

           myTextListener myTextListener = new myTextListener();
           textField.addActionListener(myTextListener);

           MyActionListener myActionListener = new MyActionListener(); //用事件类创建一个对象,供两个按钮使用
           button.addActionListener(myActionListener);
           button1.addActionListener(myActionListener);

           frame.add(panel);
           panel.add(textField);
           panel.add(button);
           panel.add(button1);

    //       frame.pack();   //窗口自适应
           frame.setBounds(200,200,400,200);
           frame.setVisible(true);
           frame.addWindowListener(new WindowAdapter() {
               @Override
               public void windowClosing(WindowEvent e) {
                   System.exit(0);
              }
          });
      }
       static class MyActionListener implements ActionListener{        //按钮监听

           @Override
           public void actionPerformed(ActionEvent e) {
               if(e.getActionCommand()=="Red") {   //对按钮的内容进行判断
                   System.out.println("RED");
              }else{
                   System.out.println("BLUE");
              }

          }
      }

       static class myTextListener implements ActionListener{      //文本框监听

           @Override
           public void actionPerformed(ActionEvent e) {
               TextField textField = (TextField) e.getSource();
               textField.setText("");
               System.out.println(textField.getText());
          }
      }
    }

     

  • 相关阅读:
    Java多线程同步和异步问题
    最优二叉查找树
    岛屿的周长
    Mac 环境下 go 国内代理配置
    岛屿数量
    字符串解码
    环形链表 II
    颜色分类
    无重复字符的最长子串
    完全平方数
  • 原文地址:https://www.cnblogs.com/awong18/p/13094401.html
Copyright © 2020-2023  润新知