Java重修笔记 第五十四天 坦克大战(三)事件处理机制

devtools/2024/12/22 20:57:05/
  • 事件处理机制
1. 让面板类实现 KeyListener 键盘监听器接口,并重写其中的方法

        (1)keyTyped 方法监听字符输出,当字符输出后触发

        (2)keyPressed 方法监听按下动作,当按键按下后触发

        (3)keyReleased 方法监听抬起动作,当某个键松开后触发

2. 重写监听事件方法体后,还需调用 repaint 方法重绘面板 
3. 将面板对象放入画框的监听器

        在画框类的构造方法中加入 addKeyListener(mp);

public class Event01 extends JFrame {private MyPanel mp = null;public static void main(String[] args) {new Event01();}public Event01() throws HeadlessException {mp = new MyPanel();add(mp);setVisible(true);setSize(1200, 900);setDefaultCloseOperation(DISPOSE_ON_CLOSE);addKeyListener(mp);}
}class MyPanel extends JPanel implements KeyListener {int x = 10;int y = 10;@Overridepublic void paint(Graphics g) {super.paint(g);g.fillOval(x, y, 50, 50);}@Overridepublic void keyTyped(KeyEvent e) {}@Overridepublic void keyPressed(KeyEvent e) {if (e.getKeyCode() == KeyEvent.VK_DOWN) {// 按了下方向键y++;} else if (e.getKeyCode() == KeyEvent.VK_UP) {y--;} else if (e.getKeyCode() == KeyEvent.VK_LEFT) {x--;} else if (e.getKeyCode() == KeyEvent.VK_RIGHT) {x++;}repaint();}@Overridepublic void keyReleased(KeyEvent e) {}
}


http://www.ppmy.cn/devtools/111792.html

相关文章

基于Python的自然语言处理系列(7):信息检索

在本系列的第七篇文章中,我们将探讨信息检索中的核心方法——TF-IDF(Term Frequency-Inverse Document Frequency)。TF-IDF是一种用于评估词在文档中的重要性的方法,它广泛应用于文本处理和信息检索任务中。 1. TF-IDF 介绍 TF-I…

TCP与UDP的区别详解

在现代计算机网络中,传输层协议是通信的核心。TCP(传输控制协议)和UDP(用户数据报协议)是两种主要的传输层协议,它们各自具有独特的特点和应用场景。本文将详细探讨TCP与UDP的区别,包括它们的基…

DataWind将string类型转化为int类型的报错解决

一、现象&#xff1a; toInt64([kernel_wakeup_top_count_str]) 二、日志&#xff1a; 遇到&#xff1a;错误: 直连查询失败&#xff0c;内部异常:<class aeolus.aeolus.libs.exception.aeolus_base_exception.AeolusBaseException>: aeolus/logicQuery/logicQueryMysq…

llvm后端之局部变量

llvm后端之局部变量 引言1 生成FrameIndexSDNode2 消除FrameIndex2.1 eliminateCallFramePseudoInstr2.2 eliminateFrameIndex 引言 llvm后端对局部变量(即alloc节点)的访问&#xff0c;首先&#xff0c;将对alloc节点转为FrameIndex&#xff0c;所有对alloc的load和store均用…

Linux下vscode配置C++和python编译调试环境

Visual Studio Code (简称 VSCode) 是由微软开发的一款免费、开源、跨平台的代码编辑器。它支持 Windows、macOS 和 Linux 操作系统&#xff0c;并且内置对多种编程语言的支持&#xff0c;包括但不限于 C/C、Python、JavaScript、TypeScript、Java 和 Go 等。VSCode 主要用于编…

【python】python中非对称加密算法RSA实现原理与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

【网络安全】JavaScript获取应用程序隐藏元素及关键字段

未经许可,不得转载。 文章目录 CSS隐藏元素识别识别页面中所有第三方域名列出当前网页上加载的所有 JavaScript 文件的 URLCSS隐藏元素识别 识别页面上通过 CSS 属性隐藏的元素,如( display: none、visibility: hidden 或 opacity: 0 ): javascript:(function() {let hidd…

AUTOSAR_EXP_ARAComAPI的5章笔记(5)

返回目录 5.3.5.3 Accessing Event Data — aka Samples 成功订阅了一个事件后&#xff0c;如何实现对接收的 Sample的访问呢&#xff1f;从服务提供者发送到订阅的Proxy实例的 Sample&#xff0c;在典型的进程间通信(IPC)实现中&#xff0c;会在缓冲区中积累 / 排队(例如内核…