事件监听、焦点--java进阶day03
1.事件
按钮是组件,点击后就会重新游戏
对于这种点击了组件之后,有逻辑触发的操作,就是事件

2.事件中的专有名词
绑定监听也就是绑定监视,是真正组织代码逻辑的地方
要有绑定监听就需要监听器,今天学习两种监听器--ActionListener、KeyListener

3.ActionListener
--监听鼠标点击和空格按下

使用方法:
找到要使用的事件源,如:按钮,用按钮调用addActionlistener方法,该方法要ActionListener(接口),参数要接口,给实现类对象,又因为抽象方法少,所以使用匿名内部类
当我们点击按钮时,控制台会出现对应的文字

.

4.KeyListener
在调用监听器之前要明白对谁做监听,这里是对窗体做监听,我们希望在按下键盘的各个按键时,窗体能够知道
通过窗体调用addKeyListener,参数是KeyListener(接口),并且有三个抽象方法,为了方便继续用匿名内部类

写完addKeyListener后出现了三个重写的方法
press监控按键按下,release监控按键释放

5.KeyEvent中的getKeyCode()
在keyPressed方法里有事件对象Keyevent,这个事件对象当中封装了一些方法,我们需要了解getKeycode方法
getKeyCode会有int类型的返回值,返回的是键盘中每一个按键对应的数字

根据这个方法,我们就可以判断用户按下的是键盘的哪个按键



6.KeyType
只能监听键盘中的一部分按键,特殊按键无法监听,较为鸡肋 如下图,注释中的按键无法监听

7.事件冲突问题--焦点
如图,我们设置动作监听和键盘监听,二者都与空格有关,此时我们按空格就存在事件冲突,当我们按空格时,会走哪一个监听器呢?
很明显,走的是动作监听,键盘监听失效了

在回答这个问题之前,我们需要知道一个知识--焦点

按钮这个组件很特殊,创建出来会自动携带焦点,这时,系统的所有注意力都在按钮上,我们按空格,和按钮有关,因此系统走动作监听

但是我们根本不要系统将注意力集中在按钮上,按钮是给用户去点击的,要系统什么事,所以我们要取消按钮的焦点
8.取消焦点--setFocusable(false)
仔细看,当按钮存在焦点时,上面的字会被框起来,取消焦点后则消失了


此时我们按空格后,走的是键盘监听,用鼠标点击按钮后走的是行动监听

事件监听、焦点--java进阶day03的更多相关文章
- Java中用得比较顺手的事件监听
第一次听说监听是三年前,做一个webGIS的项目,当时对Listener的印象就是个"监视器",监视着界面的一举一动,一有动静就触发对应的响应. 一.概述 通过对界面的某一或某些操 ...
- springBoot高级:自动配置分析,事件监听,启动流程分析,监控,部署
知识点梳理 课堂讲义 02-SpringBoot自动配置-@Conditional使用 Condition是Spring4.0后引入的条件化配置接口,通过实现Condition接口可以完成有条件的加载 ...
- 4.JAVA之GUI编程事件监听机制
事件监听机制的特点: 1.事件源 2.事件 3.监听器 4.事件处理 事件源:就是awt包或者swing包中的那些图形用户界面组件.(如:按钮) 事件:每一个事件源都有自己特点有的对应事件和共性事件. ...
- java 事件监听 - 鼠标
java 事件监听 - 鼠标 //事件监听 //鼠标事件监听 //鼠标事件监听有两个实现接口 //1.MouseListener 普通的鼠标操作 //2.MouseMotionListener 鼠标的 ...
- java 事件监听 - 键盘
java 事件监听 - 键盘 //事件监听 //键盘事件监听,写了一个小案例,按上下左右,改变圆形的位置,圆形可以移动 import java.awt.*; import javax.swing.*; ...
- java 事件监听 - 控件
java 事件监听 //事件监听 //事件监听,写了一个小案例,点击按钮改变面板的颜色. import java.awt.*; import javax.swing.*; import java.aw ...
- GUI编程笔记(java)05:GUI事件监听机制原理和举例说明
1.事件监听机制: A:事件源 事件发生的地方 B:事件 就是要发生的事情 C:事件处理 就是针对发生的事情做 ...
- java鼠标与键盘事件监听
package cn.stat.p3.windowdemo; import java.awt.Button; import java.awt.FlowLayout; import java.awt.F ...
- JAVA事件监听机制学习
//事件监听机制 import java.awt.*; import java.awt.event.*; public class TestEvent { public static void mai ...
- Java中的事件监听机制
鼠标事件监听机制的三个方面: 1.事件源对象: 事件源对象就是能够产生动作的对象.在Java语言中所有的容器组件和元素组件都是事件监听中的事件源对象.Java中根据事件的动作来区分不同的事件源对象,动 ...
随机推荐
- Nacos、Apollo、SpringCloud Config微服务配置中心对比
1为什么需要配置中心 配置实时生效: 传统的静态配置方式要想修改某个配置只能修改之后重新发布应用,要实现动态性,可以选择使用数据库,通过定时轮询访问数据库来感知配置的变化.轮询频率低感知配置变化的延时 ...
- Elasticsearch(6) --- Query查询和Filter查询
这篇博客主要分为 :Query查询和Filter查询.有关复合查询.聚合查询也会单独写篇博客. 一.概念 1.概念 一个查询语句究竟具有什么样的行为和得到什么结果,主要取决于它到底是处Query还是F ...
- Linux blkid命令
Linux blkid命令:显示块设备属性. Linux blkid命令 功能描述 使用blkid命令可以用来查询系统的块设备(包括交换分区)所使用的文件系统类型.卷标.UUID等信息. Linux ...
- bullyBox pg walkthrough Intermediate
nmap 发现80 和 22端口 访问80 端口发现 跳转 http://bullybox.local/ 在/etc/hosts 里面加上这个域名 dirsearch 扫描的时候发现了.git泄露 用 ...
- wsgi服务器
wsgi服务器DRP原则:Don't repeat yourself1.wsgi接口:全称 Web Server Gateway Interface (web服务器网关接口) 请求:request 响 ...
- linux安装wps
1. http://wps-community.org/downloads 下载 wps-office_10.1.0.5672~a21_i386.deb ...
- vue打印浏览器页面功能的两种实现方法
目录 方法一:通过npm 安装插件 方法二:手动下载插件到本地 总结 推荐使用方法二 方法一:通过npm 安装插件 1,安装 npm install vue-print-nb --save 2,引入 ...
- nginx 强制https
nginx 强制https 通常有如下两种方法强制https推荐第二种,第二种更高效1.使用nginx的rewrite方法 server { listen 80; server_name xxx. ...
- 《基于NLP内容理解》出书
<基于NLP内容理解>出书初心: 1)情怀&梦想:记得自己高中的时候每次冲进我们县城的书店,都能看到书店中央摆放着白岩松老师的一本自传,当时的那种崇拜一直萦绕在自己的心里,想着自己 ...
- Qt 枚举类型 值、字符串、枚举类型互转
枚举类型 class Enum : public QObject{ Q_OBJECT public: enum Fruit{ APPLE = 0, BANANA, POTATO } Q_ENUM(Fr ...