事件监听、焦点--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中根据事件的动作来区分不同的事件源对象,动 ...
随机推荐
- python连接pgsql&mysql
1.python连接pgsql import psycopg2 def connect_pgsql(list_sql): conn = psycopg2.connect(host='db_host', ...
- biancheng-Python教程
目录http://c.biancheng.net/python/ 1Python编程基础2Python编程环境搭建3变量类型和运算符4列表.元组.字典和集合5Python字符串常用方法6Python流 ...
- VulNyx - Mail 靶机
扫描靶机 发现22 和 80端口 访问80端口 发现id=1 和2 时都会有回显 dirsearch -u http://http://192.168.200.39 访问这个1 和 2的路径 发现竟然 ...
- manim边做边学--淡入淡出变换
今天介绍Manim中用于淡入淡出变换的3个动画类: FadeToColor:聚焦于对象颜色的平滑转换,通过渐变增强视觉效果 FadeTransform:实现不同对象之间的渐变替换,让元素转换更加连贯 ...
- Linux部署Python项目
项目部署 项目部署对于操作通常是由运维人员来进行统一管理装配的,但是对于一个开发人员来讲,基础的项目部署还是要会的. 这里我主要讲解python的项目是如何部署的,至于项目哪里来的,这就要看观众如何抉 ...
- 7.Vuex
1.store目录下生成index.js import Vue from "vue"; import Vuex from "vuex"; import { HE ...
- Git钩子-每次提交信息添加分支名称
Git钩子是一组脚本,这些脚本对应着Git仓库中的特定事件,每一次事件发生时,钩子会被触发.这允许你可以定制化Git的内部行为,在开发周期中的关键点上触发执行定制化的脚本. 钩子脚本文件通常放置于项目 ...
- 还在手动更改SpringBoot的环境yml配置文件?老鸟带你可视化配置
问题说明: 在SpringBoot开发时.SpringBoot的特性:'约定大于配置',我们只需要在**application.yml **配置当前的环境变量属与那个文件 比如测试环境 'applic ...
- OpenLayers change 事件获取当前值
这里有个 change:resolution 事件 但是事件的内容没有value,只有oldValue Zc {type: 'change:resolution', target: F, key: ' ...
- 有关C++程序设计基础的各种考题解答参考汇总
早先年考研的主考科目正是[算法与数据结构],复习得还算可以.也在当时[百度知道]上回答了许多相关问题,现把他们一起汇总整理一下,供读者参考. [1] 原题目地址:https://zhidao.baid ...