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

Java事件处理机制

基本说明:

Java事件处理是采取"委派事件模型",当事件发生时,产生事件的对象,会把此"信息"传递给"事件的监听者"处理,这里所说的"信息"实际上就是java.awt.event事件类库里某个类所创建的对象,把它称为"事件的对象"


介绍事件源,事件,事件监听器:

1.事件源:事件源是一个产生事件的对象,比如按钮,窗口等

2.事件:事件就是承载事件源状态改变时的对象,比如当键盘事件,鼠标事件,窗口事件等等,会生成一个事件对象,该对象保存着当前事件很多信息,比如KeyEvent对象有含义被按下键的Code值.Java,awt.event包和javax.swing.event包中定义了各种事件类型

事件监听器接口(如KeyListener):

1)当事件源产生一个事件,可以传送给事件监听者处理

2)事件监听者实际上就是一个类,该类实现了某个事件监听器接口 比如前面的MyPanle就是一个类,当该类实现KeyListener接口就可以作为一个事件监听者,对接受到的事件进行处理

3)事件监听器接口有很多种,不同的事件监听器接口可以监听不同的事件,一个类可以实现多个监听接口

4)这些接口在java.awt.event包和javax.swing.event包中被定义

package com.TankGame.TankGame01;import javax.swing.*;
import java.awt.*;//坦克大战的绘图区域
public class MyPanel extends JPanel {//定义我的坦克MyTank myTank = null;public MyPanel(){myTank = new MyTank(100,100);//初始化自己的坦克}@Overridepublic void paint(Graphics g) {super.paint(g);g.fillRect(0,0,1000,750);//填充矩形,默认是黑的//画出坦克(方法)drawTank(myTank.getX(),myTank.getY(),g,0,0);//更改坦克类型需要将最后一位数字改变}//编写方法画出坦克//x,y为坦克左上角横纵坐标//g就是画笔//direct方向,上下左右//type坦克类型public void drawTank(int x,int y,Graphics g,int direct,int type){//根据不同坦克设置颜色switch(type){case 0: //自己的坦克g.setColor(Color.cyan);break;case 1: //敌人坦克g.setColor(Color.yellow);break;}//根据坦克的方向,来绘制坦克switch(direct){case 0: //向上g.fill3DRect(x,y,10,60,false);  //画出坦克左边轮子g.fill3DRect(x + 30,y,10,60,false);  //画出坦克右边轮子g.fill3DRect(x + 10,y + 10,20,40,false);  //画出坦克盖子g.fillOval(x + 9,y + 19,20,20);    //画出圆形盖子//g.drawLine(x + 19,y + 30,x + 19,y - 10); //画出炮筒g.drawLine(x + 19,y + 30,x + 19,y + 80);  //何晨光的炮筒//火箭模型g.fill3DRect(x + 100,y + 150,30,200,false);g.fillOval(x + 15,y + 300,100,100);g.fillOval(x + 110,y + 300,100,100);break;default:System.out.println("网络卡顿,请稍后再试......");}}
}
http://www.dtcms.com/a/614046.html

相关文章:

  • 前端构建工具缓存策略,contenthash与chunkhash
  • 企业门户网站制作网站过期查询
  • 信阳网站优化免费的开源网站
  • Redis(125)Redis在社交网络中的应用有哪些?
  • 吴恩达新课程:Agentic AI(笔记10)
  • 随笔之工作方法的“高与低”
  • 栈+贪心
  • 快飞建站开发区网站建设方案
  • 基于MRI影像的脊髓区域检测与定位:YOLO11与SCcConv模型实战指南
  • 家乡网站怎么做设立网站
  • 快速上手大模型:深度学习5(实践:过、欠拟合)
  • 【ros2】ROS2 Python节点创建指南
  • 【MySQL】数据目录与日志开篇
  • 【深度学习新浪潮】什么是迁移学习?
  • ps学做翻页相册网站wordpress外贸网店主题
  • 现代数据采集系列(四):数据采集的安全红线-审计、血缘与合规
  • 无锡市住房与城乡建设网站成品短视频网站源码搭建免费
  • 无人机图传模块技术深度解析:选择适合你的那一款
  • 博客网站需求分析根域名服务器
  • 如何查看Kafka 主题分区目录下的 00000000000000000000.log
  • Linux---Linux编译器-gcc/g++的使用
  • 如何正确解读央行货币政策数据——以2025年3季度为例
  • 如何做公司的网站建设四川华鸿建设有限公司网站
  • 自助式网站付费电影怎样免费观看
  • 金华网站建设行业济宁网站建设有限公司
  • 不同商用车热管理机组参数
  • [智能体设计模式] 第14章:知识检索(RAG)
  • ps做网站页面设置为多大遵义网站制作一般需要多少钱
  • 鋰電池充電芯片學習
  • Qt Sql 模块中的函数详解