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的更多相关文章

  1. Java中用得比较顺手的事件监听

    第一次听说监听是三年前,做一个webGIS的项目,当时对Listener的印象就是个"监视器",监视着界面的一举一动,一有动静就触发对应的响应. 一.概述 通过对界面的某一或某些操 ...

  2. springBoot高级:自动配置分析,事件监听,启动流程分析,监控,部署

    知识点梳理 课堂讲义 02-SpringBoot自动配置-@Conditional使用 Condition是Spring4.0后引入的条件化配置接口,通过实现Condition接口可以完成有条件的加载 ...

  3. 4.JAVA之GUI编程事件监听机制

    事件监听机制的特点: 1.事件源 2.事件 3.监听器 4.事件处理 事件源:就是awt包或者swing包中的那些图形用户界面组件.(如:按钮) 事件:每一个事件源都有自己特点有的对应事件和共性事件. ...

  4. java 事件监听 - 鼠标

    java 事件监听 - 鼠标 //事件监听 //鼠标事件监听 //鼠标事件监听有两个实现接口 //1.MouseListener 普通的鼠标操作 //2.MouseMotionListener 鼠标的 ...

  5. java 事件监听 - 键盘

    java 事件监听 - 键盘 //事件监听 //键盘事件监听,写了一个小案例,按上下左右,改变圆形的位置,圆形可以移动 import java.awt.*; import javax.swing.*; ...

  6. java 事件监听 - 控件

    java 事件监听 //事件监听 //事件监听,写了一个小案例,点击按钮改变面板的颜色. import java.awt.*; import javax.swing.*; import java.aw ...

  7. GUI编程笔记(java)05:GUI事件监听机制原理和举例说明

    1.事件监听机制:       A:事件源          事件发生的地方       B:事件             就是要发生的事情       C:事件处理       就是针对发生的事情做 ...

  8. java鼠标与键盘事件监听

    package cn.stat.p3.windowdemo; import java.awt.Button; import java.awt.FlowLayout; import java.awt.F ...

  9. JAVA事件监听机制学习

    //事件监听机制 import java.awt.*; import java.awt.event.*; public class TestEvent { public static void mai ...

  10. Java中的事件监听机制

    鼠标事件监听机制的三个方面: 1.事件源对象: 事件源对象就是能够产生动作的对象.在Java语言中所有的容器组件和元素组件都是事件监听中的事件源对象.Java中根据事件的动作来区分不同的事件源对象,动 ...

随机推荐

  1. Solution -「CTSC 2017」「洛谷 P3772」游戏

    \(\mathscr{Description}\)   有 \(n\) 个随机真值 \(x_{1..n}\), 已知 \(P(x_1=1)=p_1\), 对于 \(2\le i\le n\), \(P ...

  2. Mysql存储引擎Innodb和MyISAM的区别

    一.mysql架构 mysql是一个单进程多线程架构的数据库. 二.存储引擎 InnoDB: 支持事务 行锁 读操作无锁 4种隔离级别,默认为repeatable 自适应hash索引 每张表的存储都是 ...

  3. 项目PMP之七项目成本管理

    项目PMP之七--项目成本管理   一.定义:在预算内管理成本:预测项目成本 核心理念:重点关注项目活动的成本:同时决策的影响.相关方的不同时间不同方法的测算 趋势:挣值进度(ES)逻辑:敏捷的方式则 ...

  4. AI工具推荐——open-interpreter

    前言 Open Interpreter 是一个能让大型语言模型在你本地电脑上运行代码的工具. 简单来说: 它提供了一个类似于 ChatGPT 的自然语言界面,让你能通过代码与电脑互动. 你可以用它来: ...

  5. 绕过 console-ban

    绕过 console-ban console-ban 项目介绍 console-ban 是一个高效且轻量级的 JavaScript 库,其核心功能是有效阻止用户通过浏览器的开发者工具(例如按 F12 ...

  6. 春节福利来啦!Mac用户快来抽大奖

    亲爱的Mac俱乐部(MaClub)用户及所有果粉朋友们: 值此新春佳节之际,Mac俱乐部特别推出春节抽奖活动,以回馈广大用户长期以来的支持与厚爱.我们精心准备了丰富的奖品,希望能为您的新年增添一份惊喜 ...

  7. 使用PhantomJS解决VUE项目无法被百度收录

    一.安装PhantomJS 安装文章:https://www.cnblogs.com/robots2/p/17340143.html 二.编写脚本spider.js // spider.js 'use ...

  8. HT-018 Div3 构造 题解 [ 黄 ] [ 数学 ] [ 结论 ]

    构造:结论题,gcy数竞大佬tql%%%orz. 结论 先放结论:如果 \(x \bmod 4=2\) ,那么 \(x\) 无法被表示为 \(a^2-b^2\) 的形式:除此之外的其他数都可以. 证明 ...

  9. 普通人如何靠 AI 副业,1 个月实现月薪 3 万 +

    在物价飞涨.经济低迷的今天,仅靠死工资,却有着不固定的开销?房贷.车贷.孩子的教育费用-- 望着日益增长的开销,你是否也在夜深人静时,为钱包的羞涩而发愁?无数次幻想过拥有一份高收入的副业,却始终在迷茫 ...

  10. 企业付款到零钱(微信小程序提现,用户提现到零钱)

    pom 增加 <dependency> <groupId>com.github.binarywang</groupId> <artifactId>wei ...