




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
XX学校提高型实验报告实验课题JAVA综合程序设计(提高型)(实验类型:综合性 设计性 应用性)实验课程面向对象程序设计实验时间学生姓名:专业班级:学 号:成 绩:教师签名:日 期:一实验目的和要求1、深入了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,了解如何使用布局管理器对组件进行管理,以及如何使用 Java 的事件处理机制。2、将所学知识进行综合运用,模仿设计具有实际意义的应用程序。3、锻炼使用新类(没有介绍的)类的能力。二实验条件硬件:计算机一台软件:EditPlus、JDK1.6三实验原理分析编写一个华容道传统的智利游戏,练习使用布局管理器设计一个华容道游戏界面,并练习使用事件监听器(鼠标事件、键盘事件和焦点事件)实现按钮的移动。首先是界面设计,该界面主要包括十个人物按钮(马、曹操、关羽等)以及旁边的四个边框按钮和重新开始按钮。对于人物按钮,我们可以创建Button按钮的子类,在该类中定义按钮的一些新的属性和焦点事件监听器,如按钮的标签名、按钮的颜色、按钮获得或失去焦点事件。同时在设计该界面时要考虑到各个按钮的位置、大小等情况。其次,是对界面上的各人物按钮添加相应的相应事件(鼠标事件、键盘事件),通过这两种事件去完成界面上各人物按钮的移动。对重新开始按钮定义动作事件(ActionEvent)完成界面初始化功能(也就是各人物按钮重新归位)。四实验方案或步骤程序代码:import java.awt.*;import java.applet.*;import java.awt.event.*;import javax.swing.*;public class HuaRongRoad public static void main(String args) new Hua_Rong_Road(); class Person extends JButton implements FocusListener int number; Color c; Person(int number,String s) super(s); this.number=number; c=getBackground(); setFont(new Font(宋体,Font.CENTER_BASELINE,14); addFocusListener(this); / 当前按钮注册为本身的监视器 public void focusGained(FocusEvent e) setBackground(Color.cyan); public void focusLost(FocusEvent e) setBackground(c); class Hua_Rong_Road extends JFrame implements KeyListener,MouseListener,ActionListener Person person=new Person10; JButton left,right,above,below; JButton restart=new JButton(重新开始); Container con; public Hua_Rong_Road() init(); setBounds(100,100,320,360); setVisible(true); validate(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public void init() con=getContentPane(); con.setLayout(null); con.add(restart); restart.setBounds(100,5,120,25); restart.addActionListener(this); String name=曹操,关羽,张,刘,马,许,兵,兵,兵,兵; for(int i=0;ih/2) goDown(man); if(yh/2) goUp(man); if(xw/2) goRight(man); public void mouseReleased(MouseEvent e) public void mouseEntered(MouseEvent e) public void mouseExited(MouseEvent e) public void mouseClicked(MouseEvent e) public void goDown(Person man) boolean move=true; Rectangle manRect=man.getBounds(); int x=man.getBounds().x; int y=man.getBounds().y; y=y+50; manRect.setLocation(x,y); Rectangle belowRect=below.getBounds(); for(int i=0;i10;i+) Rectangle personRect=personi.getBounds(); if(manRersects(personRect)&(man.number!=i) move=false; if(manRersects(belowRect) move=false; if(move=true) man.setLocation(x,y); public void goUp(Person man) boolean move=true; Rectangle manRect=man.getBounds(); int x=man.getBounds().x; int y=man.getBounds().y; y=50; manRect.setLocation(x,y); Rectangle aboveRect=above.getBounds(); for(int i=0;i10;i+) Rectangle personRect=personi.getBounds(); if(manRersects(personRect)&(man.number!=i) move=false; if(manRersects(aboveRect) move=false; if(move=true) man.setLocation(x,y); public void goLeft(Person man) boolean move=true; Rectangle manRect=man.getBounds(); int x=man.getBounds().x; int y=man.getBounds().y; x=x-50; manRect.setLocation(x,y); Rectangle leftRect=left.getBounds(); for(int i=0;i10;i+) Rectangle personRect=personi.getBounds(); if(manRersects(personRect)&(man.number!=i) move=false; if(manRersects(leftRect) move=false; if(move=true) man.setLocation(x,y); public void goRight(Person man) boolean move=true; Rectangle manRect=man.getBounds(); int x=man.getBounds().x; int y=man.getBounds().y; x=x+50; manRect.setLocation(x,y); Rectangle rightRect=right.getBounds(); for(int i=0;i10;i+) Rectangle personRect=personi.getBounds(); if(manRersects(personRect)&(man.number!=i) move=false; if(manRersects(rightRect) move=false; if(move=true) man.setLocation(x,y); public void actionPerformed(ActionEvent e) con.removeAll(); init(); validate(); repaint(); 五实验结果与分析组件可以触发焦点事件。组件可以用addFocusListener(FocusListener listener)方法增加焦点事件监视器。当组件具有焦点监视器后,如果组件从无输入焦点变成有输入焦点或从有输入焦点变成无输入焦点都会触发FocusEvent事件。创建监视器的类必须实现FocusListener接口,该接口有如下两个方法: Public void focusGained(FocusEvent e) Public void focusLost(FocusEvent e)当从无输入焦点变成有输入焦点触发FocusEvent事件时,监视器调用类实现的接口方法focusGained(FocusEvent e);当从有输入焦点变成无输入焦点触发FocusEvent事件时,监视器调用类实现的接口方法focusLost(FocusEvent e)。六讨论 经过一段时间的不断努力,我终于编成了华容道这个传统的中国小游戏,我体会到学习Java不能闭门造车,必须从多个方面进行不断学习,从各个方面解决问题才能完成好对程序的编写。做这个程序,有利于培养我们掌握程序设计的基本思路和方法,加强我们研发、调试程序的能力,提高我们分析、解决问题的能力。同时,我们在学习Java语言来设计程序过程中,最基本的要做到两点,一是标识
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 祠堂筹款活动方案
- 2024一年级数学下册 第4单元 100以内的加法和减法(一)7求两数相差多少的实际问题说课稿 苏教版
- 竹艺村亲子活动方案
- 幼师教学课件设计比赛
- 社工迎春活动方案
- 幼儿园安全防疫培训记录课件
- 拖拉机冲剪压加工生产线操作调整工技能比武考核试卷及答案
- 双脚跳绳教学课件图片
- 识字三教学课件
- 拉链制作工综合考核试卷及答案
- 盟史简介12.10.18课件
- 2023年04月湖北经济学院创新创业学院招聘1名孵化器日常管理专员笔试参考题库答案解析
- 法律方法阶梯
- GB/T 26081-2022排水工程用球墨铸铁管、管件和附件
- GB/T 26480-2011阀门的检验和试验
- 医院普通外科病史采集、查体及病历书写要点精讲课件
- 食品执行标准对照新版表
- 最新苏教牛津译林版英语五年级上册Unit 4《Hobbies》Grammar time 公开课课件
- 路面压浆施工方案
- 第8课时 主题阅读《雨的四季》-2022-2023学年七年级语文上册(部编版)
- Linux基础入门培训
评论
0/150
提交评论