事件监听、焦点--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中根据事件的动作来区分不同的事件源对象,动 ...
随机推荐
- Map中经常被忽略但又非常好用的方法
1. 简介 map是我们日常开发中常会的集合类之一, 但是我们除了常用的get和put之外,其他的方法好像很少会用到,接下来我们就介绍一下几个经常被忽略但又很好用的方法. 2. Quick Start ...
- js操作shadow-root内的DOM元素
其实就是 documentfragment元素,就是动态生成的文档碎片元素. 1,项目中在DOM结构里遇到了shadow-root(open),用JS方法无法直接获取其内的DOM元素 2.shadow ...
- 史上最全MySQL面试60题和答案
Mysql中有哪几种锁? 1.表级锁:开销小,加锁快:不会出现死锁:锁定粒度大,发生锁冲突的概率最高,并发度最低. 2.行级锁:开销大,加锁慢:会出现死锁:锁定粒度最小,发生锁冲突的概率最低,并发度也 ...
- 【Docker】---Docker入门篇(1)
Docker入门篇 简单一句话: Docker 是一个便携的应用容器. 一.Docker的作用 网上铺天盖地的是这么说的: (1) Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得 ...
- shell脚本中的逻辑判断
shell脚本中也可以实现逻辑判断. 案例4:shell脚本中的逻辑判断 如果你学过C或者其他语言,相信你不会对if 陌生,在shell脚本中我们同样可以使用if逻辑判断.在shell中if判断的基本 ...
- VOLE+OKVS的PSI技术落地应用
学习&转载文章:技术创新〡VOLE+OKVS的PSI技术落地应用 神谱科技基于VOLE+OKVS设计了两方PSI和多方PSI协议,并已应用于Seceum系列隐私计算产品中. Seceum并无开 ...
- Codeforces Round 957 (Div. 3)
题目链接:Codeforces Round 957 (Div. 3) 总结:E不懂,F差一个set去重 A. Only Pluses fag:枚举 B. Angry Monk fag:模拟 Solut ...
- Xshell不可以删除,退格^H
文件→属性→终端→键盘,把delete和backspace序列改为 ASCII 127即可.
- 镇海-APIO联合总结
镇海考试见此处:https://www.cnblogs.com/british-union/p/liankao.html 考的是湖南省队集训,除了第一天有点头昏导致体验很差之外体验非常好,剩下两次考试 ...
- Linux视频播放器安装
sudo add-apt-repository ppa:rvm/smplayer sudo apt-get update sudo apt-get install smplayer PPA: ppa ...