4.事件监听

事件监听:什么事情发生了,需要做什么?

什么事情是事件,做什么?是我们编辑的功能

事件:是鼠标事件,键盘事件等。

例如鼠标按下,要下载音乐

键盘按下哪一个按键,需要执行什么操作

public static void main(String[] args) {Frame frame = new Frame("事件监听窗口");Button btn = new Button("按钮");//实例化实现类MyActionListenerMyActionListener myActionListener = new MyActionListener();btn.addActionListener(myActionListener)}
}
​
//实现类MyActionListener 实现接口 ActionListener
//重写了接口中的方法actionPerformed
​
class MyActionListener implements ActionListener{@Overridepublic void actionPerformed(ActionEvent e) {System.out.print("按钮被点击");}}

事件监听例子

public class TestActionListener_02 {public static void main(String[] args) {Frame frame = new Frame("事件监听窗口");Button btn = new Button("按钮");frame.add(btn,BorderLayout.CENTER);frame.pack();frame.setVisible(true);frame.setSize(500, 300);//实例化实现类MyActionListenerMyActionListener myActionListener = new MyActionListener();btn.addActionListener(myActionListener);//关闭程序WindowClosing(frame);}//抽象关闭方法//private是本类可以使用,是static是静态可以调静态方法private static void WindowClosing(Frame frame) {frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});}
​
}
//实现类MyActionListener 实现接口 ActionListener
//重写了接口中的方法actionPerformed
class MyActionListener implements ActionListener{@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("按钮被点击");}}

两个按钮共用一个事件

优点,不需要一个按钮一个按钮的写实现类。可以多个按钮,通过判断按钮的信息来判断哪一个按钮被点击。编写不同的实现方法

    public static void main(String[] args) {//两个按钮共用一个事件//可以避免多个按钮的时候,不用一个一个的写实现类//需要学习?方法来判断是事件发生的时候,是哪一个按钮被点击.//setActionCommand()Frame frame = new Frame("两个按钮共用一个事件");frame.setVisible(true);frame.setSize(500, 500);Button btn1 = new Button("start");Button btn2 = new Button("stop");//可以显式定义触发是返回的信息,如果不显式定义,则使用默认label。btn2.setActionCommand("这是暂停按钮--显式定义");frame.add(btn1,BorderLayout.NORTH );frame.add(btn2,BorderLayout.SOUTH);MyMonitor myMonitor = new MyMonitor();btn1.addActionListener( myMonitor );btn2.addActionListener( myMonitor );//关闭窗口closeWindow(frame);}//抽象关闭窗口方法public static void closeWindow(Frame frame) {frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});}
​
}
class MyMonitor implements ActionListener{
​@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("按钮被点击:=》 "+e.getActionCommand());}}

如果按钮都没有label也没有定义,那么会返回什么? 什么都没有

那么怎么来判断是哪一个按钮???

e.getActionCommand();//获取返回信息
btn2.setActionCommand("the_end_button");//设置信息

public static void main(String[] args) {Frame frame = new Frame("两个按钮共用一个事件");frame.setVisible(true);frame.setSize(500, 500);//按钮及labelButton btn1 = new Button("start");Button btn2 = new Button("stop");Button btn3 = new Button("pause");//可以显式定义触发是返回的信息,如果不显式定义,则使用默认label。btn2.setActionCommand("the_end_button");//布局按钮frame.add(btn1,BorderLayout.NORTH );frame.add(btn2,BorderLayout.SOUTH);frame.add(btn3,BorderLayout.CENTER);MyMonitor2 myMonitor = new MyMonitor2();//按钮添加事件监听btn1.addActionListener( myMonitor );btn2.addActionListener( myMonitor );btn3.addActionListener( myMonitor );//关闭窗口closeWindow(frame);}//抽象关闭窗口方法public static void closeWindow(Frame frame) {frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});}
​
}
//实现监听   的实现类
class MyMonitor2 implements ActionListener{
​@Overridepublic void actionPerformed(ActionEvent e) {if(e.getActionCommand().equals("start")) {System.out.println("这是开始按钮被点击了");}else if (e.getActionCommand().equals("the_end_button")) {System.out.println("这是显式btn按钮被点击了");}else {System.out.println("这是  暂停  按钮被点击了");}​}
}
​

5.输入框事件监听

textField 文本框 单行输入

textArea 文本域 多行输入

一般是分开类写。main方法一般只写启动

第二个是自己的类

new textfile

放入 frame

调整frame的可见 大小等

实例化 实现类的接口(事件)

给文本框添加事件

三个是实现类

public class TextField_ActionListener {//文本框的事件监听器public static void main(String[] args) {//启动new MyTextFiled();}
​
}
//
class MyTextFiled extends Frame{
​public MyTextFiled() {super();TextField textField = new TextField();//生成文本框add(textField);                       //添加进framesetVisible(true);                     //设置frame可见性setSize(500, 500);TfActionListener tf = new TfActionListener();//实例化接口的实现类textField.addActionListener(tf);  //添加文本框监听事件closeWindow(this);}public static void closeWindow(Frame frame) {frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});}}
//文本框事件监听实现
class TfActionListener implements ActionListener{@Overridepublic void actionPerformed(ActionEvent e) {//e.getSource();//获得资源方法,但会的是一个对象TextField field=(TextField)e.getSource();//强转形 多态
//      System.out.println(field);System.out.println(field.getText());//转形后getText()获得文本框输入的方法}
}

疑惑这个关闭的方法,应该怎么写,怎么调用才对,为什么写this也可以,而不是写super(),super只能写第一行???

GUI 事件监听和文本框事件监听相关推荐

  1. jQuery 监听修改文本框事件

    在开发中,有时我们需要对 input 的 value 值变化作实时响应.比如文本输入框的实时字数统计功能,要求文本框内容改变时就要触发相关的统计行为.不管这个内容是键盘输入的,还是鼠标粘贴进来的.1, ...

  2. 第三篇、文本框事件监听

    文章目录 前言 一.文本框事件监听 二.代码示例 1.文本框事件监听 总结 前言 上一篇我们共同学习了对按钮事件的监听,本篇我们将共同学习对文本框的事件监听 一.文本框事件监听 本篇内容我们将实现对文 ...

  3. php 文本框事件,jQuery监控文本框事件并处理步骤详解

    这次给大家带来jQuery监控文本框事件并处理步骤详解,使用jQuery监控文本框事件的注意事项有哪些,下面就是实战案例,一起来看一下.//事情委托 $(document) .on('input pr ...

  4. html文本框鼠标离开事件,html鼠标事件_文本框事件

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 今天57号网络技术分享给大家介绍html鼠标事件,就是当前文本框获得焦点时,里面的原有文本清零. 首先我们来看一看源代码运行后的效果图片: 你也可以[点击 ...

  5. 绑定文本框事件,浏览框。按钮单击事件

    按钮单击事件: jQuery("button[name='addbutton0']").click(function(){//绑定明细添加点击事件var indexnum0=jQu ...

  6. 常用的事件(包括键盘事件,文本框事件,窗口事件)

    键盘事件 // 键盘事件 // onkeydown 键盘按下 // onkeypress; 键盘按着不放时 // onkeyup 键盘按下后抬起触发 文本框事件 // onchange 内容发生改变并 ...

  7. java 文本框输入监听事件_JAVA GUI 事件监听事件 详解 和 案例.

    GUI(图形用户界面) Graphical User Interface(图形用户接口) 用图形的 方式, 来显示 计算机操作的 界面, 这样更方便 更直观. CLI Command Line Use ...

  8. 监听文本框事件几种方法总结

    宏 // 占位文字颜色 #define LSLPlaceholderColorKey @"placeholderLabel.textColor" // 默认的占位文字颜色 #def ...

  9. button layui 点击事件_Layui 带多选框表格监听事件以及按钮自动点击写法实例

    不话不多说了,直接上代码吧: 获取选中行数据 获取选中数目 验证是否全选 提交选择 id运动名运动时长运动类型 var msg=""; var idlist="" ...

最新文章

  1. 深入浅出计算机组成原理学习笔记:总线-计算机内部的高速公路(第42讲)
  2. 绘制pr曲线图_生存分析如何绘制事件发生累计概率曲线图?
  3. 关于Angular @Injectable的几种测试情况
  4. 配置编译win7+VS2017+opencv4.0.1+contrib4.0.1
  5. 深度探索Win32可执行文件格式
  6. ipv6 neutron应用(一)
  7. ubuntu常用状态查看命令
  8. MySQL删除表数据:DELETE 与 TRUNCATE 的区别
  9. file js new 传到后台_JS读取文件且AJAX传输到后台
  10. 计算机考研408每日一题 day165
  11. 笔记14:STM32F4之电容触摸按键
  12. PMP-35项目沟通管理
  13. C语言 哲学家就餐问题
  14. 2015 android 5.0 手机排行榜,2015上半年顶级新款Android手机汇总
  15. almost unreal歌词翻译_Almost Lover歌词
  16. 实现PPT演示的"非全屏播放"效果
  17. linux ps4模拟器下载地址,PS4模拟器PC版下载
  18. <Zhuuu_ZZ>大数据技术之Flume详解
  19. abaqus应力值导出并进行后处理(同一节点多个应力值如何处理?)
  20. R语言可视化——动态心型图

热门文章

  1. 如何压缩图片?我只告诉你这几个靠谱的方法
  2. 如何把纸质版试卷扫描成电子版?快来试试这三个软件
  3. 未来哪些岗位会被计算机取代,未来十年后,哪些职业会可能消失或被替代?
  4. Python3小白爬虫入门(一)
  5. lol那个服务器有无限火力,2018LOL国服无限火力什么时候开放
  6. 燃气管网远程监测系统建设方案
  7. 阿里天池---教学赛】金融数据分析赛题2:保险反欺诈预测
  8. 数码大冒险服务器维护,数码大冒险攻略 点神器终极大法 更多攻略尽在光环助手...
  9. 【题外话】如何拯救WiFi模块损坏的小米11Pro这款工业垃圾
  10. 你是否了解APP耗电问题?深入探索 Android 电量优化,醍醐灌顶