当前位置: 首页 > news >正文

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

  • 事件处理机制
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.mrgr.cn/news/24854.html

相关文章:

  • 手写Promise
  • 贪心算法day29|134. 加油站(理解有难度)、135. 分发糖果、860. 柠檬水找零、406. 根据身高重建队列
  • 基于 PyTorch 和 TensorFlow 的口罩检测与人脸识别系统
  • 在 PyTorch 中,除了 pad_sequence 还有哪些其他处理序列数据的函数?时间序列数据 预处理
  • 什么是 PD 电压诱骗?
  • R语言统计分析——功效分析2(t检验,ANOVA)
  • 【 html+css 绚丽Loading 】000047 玄武流转盘
  • [综述笔记]Federated learning for medical image analysis: A survey
  • 二分思想与相关例题(上)
  • 可解释性人工智能(eXplainable Artificial Intelligence,XAI)
  • 无敌C++大王养成篇一
  • FreeRTOS学习(2)延时函数的封装
  • 初识Linux · 进程(2)
  • 利士策分享,如何制定合理的工作时长:寻找生活与工作的平衡点
  • 【C#生态园】提升C#开发效率:掌握这六款单元测试利器
  • 【OJ】关于顺序表的经典题目(移除数组中指定元素的值、数组去重、合并两个有序的数组)
  • 基于SpringBoot+Vue+MySQL的考研互助交流平台
  • 力扣sql五十题——连接
  • Codeforces Round 971 (Div. 4)——C题题解
  • Parallels Desktop 20 for Mac 正式发布,更新了哪些新功能(附下载链接)!