- 1、本文档共53页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11章综合应用设计实例选编
第11章 综合应用设计实例 ;主要内容;11.1 “推箱子”游戏程序设计;11.1 用方向键控制图形移动;;11.1.2 用键盘方向键控制图形移动;11.1.3 推另一图形移动;11.1.4 由地图文件安排游戏画面;例如,如图11.3所示的游戏的画面,就是从一个地图文件中读取的画面数据。
在该游戏画面中,使用了6种小图形块,每一种小图形都定义了一个编号,如图11.4所示。;把这些小图形块根据游戏剧情要求组合成一个大图形,其各小图形块所对应的编号构成一组数据,如图11.5所示。把这组数据保存到一个文件中,该文件就称为地图文件。;2、 从地图文件中读取数据;11.1.5 障碍物的处理方法;课程设计;11.2 远程桌面控制系统设计;11.2 远程桌面控制系统设计;11.2.1 引例——捕获桌面屏幕图像;;【例11-5】设计捕获桌面屏幕图像程序。;11.2.2 系统结构设计;;3、服务器端程序结构;4、客户端程序功能 ;5、客户端程序结构 ;5、客户端程序结构 ;11.2.3 需要使用的类;2、获取屏幕的分辨率
用Toolkit类的getScreenSize()方法来得到屏幕的分辨率(即屏幕图象的大小)。
Dimension screen=Toolkit.getDefaultToolkit().getScreenSize();
然后,用下面的语句获取应用程序窗体的大小
Dimension a=frame.getSize();
这样,我们就可以让应用程序窗体自动居中:
frame.setLocation((screen.width-a.width)/2,(screen.height-a.height)/2);;3、“机器人”Robot类及其控制鼠标和键盘事件的方法
由机器人Robot类控制鼠标和键盘事件的方法:
robot.mousePress(button); //触发按下鼠标的动作事件
robot.mouseRelease(button); //触发释放鼠标的动作事件
robot.mouseMove(x,y); //触发移动鼠标的动作事件
robot.mouseWheel(button); //触发鼠标滚轮的动作事件
robot.keyPress(x); //触发按下键盘的动作事件
robot.keyRelease(x); //触发释放键盘的动作事件
这里,robot是Robot类的实例化对象。
;11.2.4 服务器端程序的实现;2、主函数main( )
main( )用于建立只有一个退出按钮的窗口,如果我们将该窗口的setVisible( )设为flase,则本程序就是一个“木马”程序了。;3、发送屏幕图像方法sendScreen( )
;4、接受和执行控制指令的多线程方法run( )
多线程方法run( )用于接收远程控制者发来的控制指???数据包,并开包检查数据内容,根据控制指令系统的规定,按接收到的指令执行相应的动作。 ;run( )方法的工作过程及执行的动作 ;5、设定通信协议,构造控制指令系统结构
通信协议能,即通信双方都必须遵循的一种约定。现在控制端要向被控端发送控制指令,必须构造一个控制指令系统,双方都按该指令系统执行相应的操作。
现设定通信协议如下:
指令的字长为50个字节,前20位数据是指令类型,后30位数据是操作指令,如图所示。
;7.服务器应用程序的实现【例11-6】设计一个实现远程屏幕图像控制的服务器程序。;11.2.5 客户端程序的实现;2、主函数main( )
在主函数中创建了一个输入被控端IP地址信息的窗体,如图11.16所示如。
JFrame ip=new JFrame(请输入IP:);
;;;6、发送键盘指令方法sendKey( )
发送键盘指令的方法为:
void sendKey(int type,int code,char c,int location)
其中定义了四个参数:
int type为指令类型,判断是按下键还是释放键;
int code为按键相对应的Unicode码;
char c为按键值;
int location为按键所在(左键、右键)位置。 ;在sendKey( )方法中,构造了一个用于发送指令数据的字节数组bytes:
byte[] bytes = new byte[50];
该数组有50个???组元素,前20位元素存放指令类型,第20~30位元素存放按键相对应的Unicode码,第30~40位元素存放按键值,第40~50位元素存放左、右键位置。 ;7、发送控制鼠标事件的方法sendMouse( )
发送控制鼠标事件的方法为:
您可能关注的文档
- 第11章光的干涉选编.ppt
- 第11章交变应力选编.ppt
- 第11章人与环境的界面设计选编.ppt
- 第11章、面向对象的Java实现-继承和多态选编.ppt
- 第11章区域土地利用与区域管治选编.ppt
- 第11章单片机应用系统设计实例选编.ppt
- 第11章.面向对象的设计选编.ppt
- 第11章员工关系管理选编.ppt
- 第11章块与属性选编.ppt
- 第11章元素化学选编.ppt
- 数据仓库:Redshift:Redshift与BI工具集成.docx
- 数据仓库:Redshift:数据仓库原理与设计.docx
- 数据仓库:Snowflake:数据仓库成本控制与Snowflake定价策略.docx
- 大数据基础:大数据概述:大数据处理框架MapReduce.docx
- 实时计算:GoogleDataflow服务架构解析.docx
- 分布式存储系统:HDFS与MapReduce集成教程.docx
- 实时计算:Azure Stream Analytics:数据流窗口与聚合操作.docx
- 实时计算:Kafka Streams:Kafka Streams架构与原理.docx
- 实时计算:Kafka Streams:Kafka Streams连接器开发与使用.docx
- 数据仓库:BigQuery:BigQuery数据分区与索引优化.docx
文档评论(0)