Java扫雷游戏课程设计.doc_第1页
Java扫雷游戏课程设计.doc_第2页
Java扫雷游戏课程设计.doc_第3页
Java扫雷游戏课程设计.doc_第4页
Java扫雷游戏课程设计.doc_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java 课程设计题目: 扫 雷 游 戏系 别 信息与计算科学专业班级 信息与计算科学091班学生姓名 余启 张昱 宋加望指导教师 贺 慧 琳提交日期 2012年5月25日 46目 录一、设计目的(一级标题,用黑体小三)3二、设计要求和设计指标3三、设计内容33.1 总体设计.33.2 MineGame类.43.3 MineArea.53.4 Block类 73.5 BlockView类 73.6 LayMines类 93.7 Record类 93.8 ShowRecord类103.9 userDefine 类 113.10 voiceShow类.133.11 ruleShow 类.143.12 authorShow 类.163.13所需图像.173.14所需音频 173.15 整体效果 17四、本设计改进和建议20五、总结(感想和心得等)20六、主要参考文献20附录20一、设计目的通过选择Java课程设计(第二版)中扫雷游戏,这个综合性的题目作为本次的课程设计。可以让我们更加熟悉Java程序设计这门课程,学会熟练使用Jcreator这个软件,加深对Java语言的掌握,提高编程水平。同时培养独立思考和同学间团结合作的能力,为毕业设计以及将来的工作打下坚实的基础。二、设计要求和设计指标参考Windows 2000/XP系统提供的扫雷游戏,改进扫雷游戏程序, 增加以下功能:在主界面中添加一个菜单栏,菜单栏中包括游戏和帮助两个菜单,其中游戏菜单中设置初级、中级、高级、自定义、声音、扫雷英雄榜这几个菜单项,帮助菜单中设置游戏规则和制作人员两个菜单项。3、 设计内容 3.1总体设计 在设计扫雷游戏时,需要编写 个Java源文件:MineGame.java、MineArea.java、Block.java、BlockView.java、LayMines.Java、Record.java、ShowRecord.java、voiceShow.java、userDefine.java、autherShow.java、ruleShow扫雷游戏除了需要编写上述java 源文件所给出的类外,还需要Java 系统提供的一些重要的类,如File、JButton、和Jlabel等类。扫雷游戏所用到的一些重要的类以及之间的组合关系如图1所示:图1 类之间的组合关系 3.2 MineGame类 3.2.1. 效果图(如下图2) 图2 MineGame创建的窗口 3.2.2 UML类图MineGame类是javax.swing 包中Jframe的一人子类,并实现了ActionListener接中,标明该类的主要成员变量和方法的UML图如图3所示图3 MineGame类的UML图 以下是UML图中有关数据和方法的详细说明。1) 成员变量 bar和fileMenu提供菜单操作,单击游戏菜单中的选项为“初级”“中级”“高级”“自定义”“扫雷英雄榜”“背景声音”“退出”“游戏规则”“制作人”等MineArea是扫雷区域,提供有关扫雷的主要功能。“英雄榜”负责存放三个级别的扫雷最好成绩。showheroRecord负责显示英雄榜中的数据userdefine负责用户自定义功能VoiceShow负责背景音乐功能ruleshow负责显示游戏规则功能authorshow负责显示作者功能2)MineGame()是橘色造方法,负责完成窗口的主要功能actionPerformed(ActionEvent)方法是MineGame类实现的ActionListere接口中的方法,该方法负责执行菜单发出的有关命令。用户选择菜单项可以触发ActionEvent事件,导致actionPerformed(ActionEvent)方法执行相应的操作,例如将mineAreaw创建的雷区设置为初级中级高级等Main(String)方法是程序的入口方法 3.2.3代码(见附录1) 3.3 MineArea 3.3.1 效果图:(见下图4) 图4 MineArea创建的扫雷区域效果图 3.3.2 UML图 MineArea类是javax.swing包中JPanel容器的子类,实现了ActionListener和MouserListener接口,所创建的对象:mineArea是MineGame类中最重要的成员之一,作为一个容器添加到MineGame窗口的中心。标明MineArea类的主要成员变量、方法以及和MineGame类之间组合关系的UML图如图5:图5 MineGame类之间组合关系的UML图以下是UML图中有关数据和方法的详细说明。1) 成员变量Block是Block类型的数组,用来确定雷区有多少需进行扫雷的方块。blockView是Blockview类型的数组,负责为block数组中的Block对象提供视图。Lay是LayMines类型的对象,负责设置block数组中的哪些方块是雷或不是雷。Record负责提供保存成绩的界面,是一个对话框,默认不可见。用户只有扫雷成功后(用时最少),才能看见该对话框。reStart是一个按钮对象,用户单击它重新开始游戏。time是计时器对象,负责计算用户的用时。2)方法initMineArea(int,int,int,int)方法可根据参数提供的数据设置雷区的宽度,高度,雷的数目以及雷区的级别。actionPerformed(ActionEvent)是MIneArea类实现ActionListener接口中的方法。当用户单击blockView中的某个方块时,actionPerformed(ActionEvent)方法负责执行有关算法,例如,当用鼠标左键单击方块上的按钮后,若该方块下有雷,actionPerformed(ActionEvent)方法将使用户输掉本局,若该方块下又雷,actionPerformed(ActionEvent)方法将显示BlockView对象中的标签,该标签上是一个数字,该数字代表当前方块的周围的8个方块中总共有多少颗雷show()方法是一个递归方法。actionPerformed(ActionEvent)方法执行时将调用show方法进行扫雷。mousePress(MouseEvent)方法是MineArea类实现的MouseListener接口中的方法,当用户按下鼠标右键时,mousePress(MouseEvent)方法负责让方块上显示一个探雷标记。inquireWin()方法用来判断用户是否扫雷成功,如果成功该方法负责让record对话框可见。所谓扫雷成功是指不仅找到了全部的雷而且用时最少。 3.3.3代码(见附录2) 3.4 Block类 3.4.1.效果图 Block对象负责封装雷区中方块中的数据以及对这些数据的操作,外观效果由Blockview负责提供(见后面的BlockView)。 3.4.2.UML图Block类创建的对象是数组block的单元的对象。Block型数组block是MineArea类的重要成员之一。标明Block类的主要成员变量和方法以及和MineArea类之间的组合关系的UML图如下图6:图6 Block类的UML图以下是UML图中有关数据的方法的详细说明。1)成员变量name是方块上的名字。aroundMineNumber是方块周围雷的数目。mineIcon是方块上雷的图标。sMine用来表示方块是否是雷。isMark用来表示方块是否被标记。isOpen用来表示方块是否被挖开。2)方法setAroundMineNumber(int)方法用来设置aroundMineNumber的值。getAroundMineNumber()方法用来获取aroundMineNumber的值。 3.4.3代码(见附录3) 3.5 BlockView类 3.5.1.效果图BlockView创建的对象负责为Block对象提供视图,以便用户通过该视图与Block对象交互。BlockView对象使用一个标签和按钮为Block对象提供视图,标签和按钮按着卡片布局层叠在一起,默认状态按钮遮挡住标签。当用户单击按钮后,如果Block对象时雷,BlockView对象中的标签显示的事雷的图标;如果Block对象不是雷,标签显示的是周围雷的总数。效果如图7所示:图7 BlockView对象 3.5.2.UML图BlockView类是javax。swing包中JPanel类的一个子类,创建的对象是数组blockView的单元中的对象。BlockView型数组BlockView是MineArea类的重要成员之一。标明BlockView类的主要成员变量和方法以及和MineArea类之间的组合关系的UML图如图8:图8 MineArea类的UML图以下是UML图中有关数据的方法的详细说明。1)成员变量blockNameOrIcon用来显示Block对象的name,number和mineIcon属性。blockCover用来遮挡blockNameOrIcon。card卡片布局2)方法giveView(Block block)方法给参数指定的Block对象提供视图,如果Block对象的isMine属性为true,即方块是雷,那么blockNameOrIcon标签上设置的文本就是Block对象的name属性的值,同时blockNameOrIcon标签上设置的图标就是Block对象的mineIcon指定的图标。如果Block对象的isMine属性为false,blockNameOrIcon标签上设置的图标就是Block对象的aroundMineNumber属性的值,及周围雷的数目seeblockNameOrIcon()方法让用户看见视图中的标签,无法看见按钮。seeblockNameOrIcon(0方法让用户看见视图中的按钮,无法看见标签。 3.5.3代码(见附录4) 3.6 LayMines类 3.6.1.效果图 LayMines对象使用随机算法制定MineArea对象中的哪些Block对象是雷,哪些对象不是雷,没有可现实的效果图。 3.6.2.UML图LayMines创建的对象Lay是MineArea中的重要成员,表明该类的主要成员变量和方法以及和MineArea类之间组合关系的UML图如图9:图9 LayMines类的UML图以下是UML图中有关数据的方法的详细说明。1)成员变量 mineIcon用来存放一个格式为gif的图像。2)方法layMinesForBlock(Block,in)方法对参数指定的Block数组进行设置,其中int参数指定雷的数目,当指定Block数组中每个单元中的方块是雷时,就将该房快上的图标设置为mineIcon,当指定Block数组中每个单元中的方块不是雷时,就将该方块的名字设置为周围的雷的数目。3.6.3代码(见附录5) 3.7 Record类 3.7.1.效果图Record创建的对象负责提供保存成绩的界面,效果如图10:图10 保存创建对话框 3.7.2.UML图Record是javax。swing包中jDialog对话框的子类,并实现了ActionListener接口。Record创建的对象:record是MineArea类的成员之一,当用户扫雷成功时,该对象提供了保存成绩到文件的界面。标明Record类的主要成员变量,方法以及和MineArea类之间组合关系的UML图如图11:图11 Record类的UML图以下是UML图中有关数据的方法的详细说明。1)成员变量textName提供用户扫雷优胜者输入姓名用户单击”确定“按钮,可以保存成绩2)方法actionPerformed(ActionEvent)方法是Record类实现的ActionListener接口中的方法,当用户单击”确定“按钮后,该方法被执行,所执行的操作就是获取用户输入的名字和用时然后调用writeRecord(String,String)方法将信息写入”英雄榜“中。writeRecord(String,String)方法负责将有关信息扫雷用时,扫雷级别,扫雷优胜者姓名等心思写入到”英雄榜“文件。 3.7.3代码(见附录6) 3.8 ShowRecord类 3.8.1.效果图ShowRecord创建的对象负责提供显示成绩的界面,效果如图12:图12 显示成绩对话框 3.8.2.UML图ShowRecord是javax。swing包中JDialog对话框的子类,并实现了ActionListener接口。ShowReacord创建的对象showHeroRecord是MineGame类的成员之一,当用户选择查看英雄榜“菜单项时,该对话框可见,提供了查看扫雷的最好成绩的界面。标明ShowRecord类的主要成员变量,方法以及和MineGame类之间组合关系的UML图如图13:图13 ShowRecord类的UML图以下是UML图中有关数据的方法的详细说明。1) 成员变量File存放文件的引用用户单击”显示成绩“按钮,可以查看各个级别扫雷的最好成绩。用户单击”重新计分“按钮,可以将”英雄榜“中的成绩恢复为初始值。2)方法actionPerformed(ActionEvent)方法是ShowRecord类实现的ActionListener接口中的方法,当用户单击”显示成绩“按钮后,该方法被执行,所执行的操作就是调用readAndShow()方法。readAndShow()方法负责读取存放在文件中的各个级别的扫雷最好成绩以及扫雷者姓名,并显示这些相关信息。 3.8.3代码(见附录7) 3.9 userDefine 类 3.9.1效果图 (如图14)图14 自定义窗口 3.9.2 UML图 userDefine是java.awt包中Rame框架的子类,并实现了ActionListener接口。userDefine创建的对像:usedefine是MineArea类的成员之一,当用户点击菜单栏中的游戏-自定义时,弹出界面,在界面的文本框中输入相应的数字。然后单击确定即可,或者单击取消退出界面。标明userDefine类的主要成员变量、方法以及和MineArea类之间的组合关系的UML图如图15所示图15 userDefine类的UML图以下是UML图中有关数据和方法的详细说明。1)成员变量行数,列数,雷数,分数:分别用来显示行数,列数,雷数,分数行数1,列数1,雷数1,分数1:用来自定义雷区的长度值,宽度值,所有的雷数值以及每赢一局所得的分数说明1,说明2 说明3,说明4:用来说明上述内容容器1,容器2,容器3 :用来装Label 和TextFiled,以方便布局确定,取消;单击“确定”后,如果输入的内容合法,就会实现自定义的雷区,如果不合法的话,就会弹出一个警告框,提示输入有误;单击“取消”退出自定义窗口。2)方法 actionPerformrd(ActonEvent)方法是userDefine类中实现的ActionListener接口中的方法,当用户单击界面的“确定”,该方法被执行,所执行的操作就是,将用户输入的信息传入程序,实验自定义雷区的难度级别。当用户单击界面的“取消”,该方法被执行,所执行的操作就是,退出用户自定义界面。 3.9.3 代码(见附录8 userDefine.java) 3.10 voiceShow类 3.10.1 效果图(如图16) 图16 背景音乐窗口 3.10.2 UML图 voiceShow是java.awt包中Rame框架的子类,并实现了ActionListener接口。voiceShow创建的对像:voiceshow是MineArea类的成员之一,当用户点击菜单栏中的游戏-背景音乐时,弹出界面,单击下拉列表,选择背景音乐,然后单击一次播放,就可以实现有背景音乐,循环播放和停止播放类似。标明author类的主要成员变量、方法以及和MineArea类之间的组合关系的UML图如图17所示图17 voiceShow类的UML图以下是UML图中有关数据和方法的详细说明。1)成员变量la1:用来显示“选择播放曲目”Ch1:音乐选择下拉列表Bu1,bu2,bu3;分别表示一次播放,循环播放,停止播放,单击后实现相应的功能url;用来表示所选择音乐的URLclip:音乐播放中类,用以实现音乐的播放功能:str,str1;表示所选择音乐的Itme的值2)方法 actionPerformrd(ActonEvent)方法是voiceShow类中实现的ActionListener接口中的方法,当用户单击界面的“一次播放”,该方法被执行,所执行的操作就是,开始播放音乐。当用户单击界面的“循环播放”,该方法被执行,所执行的操作就是,开始循环播放音乐。当用户单击界面的“停止”,该方法被执行,所执行的操作就是,停止正在播放音乐。 3.10.3 代码(见附录9 voiceShow.java) 3.11 ruleShow 类 3.11.1 效果图(如图18) 图18 游戏规则 3.11.2 UML图 ruleShow是javax.swing包中JRame框架的子类,并实现了ActionListener接口。ruleShow创建的对像:ruleshow是MineArea类的成员之一,当用户点击菜单栏中的帮助-游戏规则时,弹出界面,说明游戏,标明author类的主要成员变量、方法以及和MineArea类之间的组合关系的UML图如图19所示图19 ruleShow类的UML图以下是UML图中有关数据和方法的详细说明。1)成员变量la1:用来显示扫雷游戏的规则如下la2,la2;用来显示下面几条游戏规则Con1,Con2,Con3;用来装la1,la2 以实现在JFrame中布局;bu1;用记单击bu1,关闭窗口; 2)方法 actionPerformrd(ActonEvent)方法是ruleShow类中实现的ActionListener接口中的方法,当用户单击界面的“确定”,该方法被执行,所执行的操作就是,并关闭界面。 3.11.3 代码(见附录10 ruleShow.java) 3.12 authorShow 类 3.12.1 效果图(如图20)图20 作者及意见 3.12.2 UML图 authorShow是javax.swing包中JRame框架的子类,并实现了ActionListener接口。authorShow创建的对像:authorshow是MineArea类的成员之一,当用户点击菜单栏中的帮助-制作人时,弹出界面,说明作者信息以及传入用户提交的建议,标明author类的主要成员变量、方法以及和MineArea类之间的组合关系的UML图如下所示以下是UML图中有关数据和方法的详细说明。1) 成员变量bu1:用户单击bu1,可以提交用户输入的信息以及关闭窗口tx1:用来输入用户的建议la1,la2:用来显示作者信息 2)方法 actionPerformrd(ActonEvent)方法是authorShow类中实现的ActionListener接口中的方法,当用户单击界面的“确定”,该方法被执行,所执行的操作就是将用户的建议与意见保存在一个advice.txt 文档中,并关闭界面。 3.12.3 代码(见附录11 authorShow.java) 3.13所需图像预备名字为mark.gif、mine.gif、a.jpg 、b.jpg 、c.jpg图像文件,其中mark.gif、mine.gif分别是扫雷时所用的“标记”图像“雷”的图像,a.jpg 、b.jpg 、c.jpg用于authorShow中作者的图像。 3.14 所需音频准备好 爆炸声.wav、猜不透.wav、范逸臣 不说出的温柔.wav、林宥嘉 说谎.wav 和我舍不得 弦子.wav 等音频文件(注意,一定要是wav格式的音频文件)其中爆炸声.wav 用于Minearea 中,当点到雷就会发出声音,其余用于voiceShow中用来显示背景音乐。3.15 整体效果 3.15.1 初始界面(图21) 图21初始界面 3.15.2 单击游戏-自定义-确定(图22、23) 图 22 自定认界面 图23 自定义游戏难度3.15.3 单击 游戏-背景声音-一次播放(图24、25) 图 24 背景音乐界面 图25 播放音乐3.15.4单击 帮助-游戏规则(图26) 图 26 游戏规则界面3.15.5 单击 帮助-制作人(图27) 图 27 作者及意见四、 本设计改进建议1、界面的美观性做的不太好,比如说布局,颜色搭配有待改进2、背景音乐在播方的时候有一点小问题,比如单击停止播放,音乐并没有停止,需要单击次或多次;另外背景音乐似乎很占内存,运行的时候容易死机。3、MineGame的初始化界面大小难以控制,特别是在自定义的情况下,需在手动改面窗口的大小。五、总结(感想和心得等)1、做完之后,确实有一点成就感,这种感觉激励着自已更加努力的学习这门课程2、编程的进程肯定会遇到困难,要充分利用现有的资源比如说互联网,书籍,这次实验多亏在在网上找的JavaAPI,帮助我解决了不小困难。3、要有团队合作精神,很感谢我的认友在这次实验给予我的帮助。六、主要参考文献1 Java课程设计(第二版) 清华大学出版社 耿祥义 张跃平 2 Java2实用教程(第三版) 清华大学出版社 耿祥义 等3孙卫琴. 精通Struts:基于MVC的Java Web设计与开发.北京:电子工业出版社,2004.084JAVA 语言与面向对象程序设计 . 印 旻 . 清华大学出版社。5 JavaApplet 实例编程,赤金、聂松编著,中国水利水电出版社6 Java 开发利器 Eclipse 从入门到精通张峰科技 编,清华大学出版社7 Java2 核心第二版窗体底端 8Sun中国技术社区/9Java之家/10Apache社区附录附录1:import java.awt.event.*;import java.awt.*;import javax.swing.*;import javax.swing.border.*;import java.util.*;import java.io.*;import javax.swing.KeyStroke;import java.awt.event.KeyEvent;public class MineGame extends JFrame implements ActionListener JMenuBar bar; JMenu fileMenu,fileMenu1;/ JMenuItem 初级,中级,高级,扫雷英雄榜; JMenuItem 自定义,背景声音,游戏规则,制作人,退出;/ static MineArea mineArea=null; File 英雄榜=new File(英雄榜.txt); Hashtable hashtable=null; ShowRecord showHeroRecord=null; userDefine userdefine=new userDefine();/ voiceShow voiceshow;/ ruleShow ruleshow;/ authorShow authorshow;/ MineGame() mineArea=new MineArea(16,16,40,1); add(mineArea,BorderLayout.CENTER); bar=new JMenuBar(); fileMenu=new JMenu(游戏); fileMenu.setMnemonic(KeyEvent.VK_G); fileMenu1=new JMenu(帮助);/ fileMenu1.setMnemonic(KeyEvent.VK_H);/ 初级=new JMenuItem(初级,KeyEvent.VK_P);/ 初级.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,ActionEvent.CTRL_MASK);/ 中级=new JMenuItem(中级,KeyEvent.VK_M);/ 中级.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M,ActionEvent.CTRL_MASK);/ 高级=new JMenuItem(高级(H),KeyEvent.VK_H);/ 高级.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,ActionEvent.CTRL_MASK);/ 扫雷英雄榜=new JMenuItem(扫雷英雄榜,KeyEvent.VK_B); / 扫雷英雄榜.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B,ActionEvent.CTRL_MASK);/ 自定义=new JMenuItem(自定义,KeyEvent.VK_S);/ 自定义.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,ActionEvent.CTRL_MASK);/ 背景声音=new JMenuItem(背景声音,KeyEvent.VK_M);/ 背景声音.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M,ActionEvent.CTRL_MASK);/ 游戏规则=new JMenuItem(游戏规则,KeyEvent.VK_R);/ 游戏规则.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M,ActionEvent.CTRL_MASK);/ 制作人=new JMenuItem(制作人,KeyEvent.VK_O);/ 制作人.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,ActionEvent.CTRL_MASK);/ 退出=new JMenuItem(退出,KeyEvent.VK_E); 退出.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,ActionEvent.CTRL_MASK);/ voiceshow=new voiceShow();/ ruleshow=new ruleShow();/ authorshow=new authorShow();/ fileMenu.add(初级); fileMenu.add(中级); fileMenu.add(高级); fileMenu.add(自定义);/ fileMenu.add(扫雷英雄榜); fileMenu.add(背景声音);/;/ fileMenu.add(退出); fileMenu1.add(游戏规则);/ fileMenu1.add(制作人);/ bar.add(fileMenu); bar.add(fileMenu1);/ setJMenuBar(bar); 初级.addActionListener(this); 中级.addActionListener(this); 高级.addActionListener(this); 扫雷英雄榜.addActionListener(this); 自定义.addActionListener(this);/ 背景声音.addActionListener(this);/ 游戏规则.addActionListener(this);/ 制作人.addActionListener(this);/ 退出.addActionListener(this); hashtable=new Hashtable(); hashtable.put(初级,初级#+999+#匿名); hashtable.put(中级,中级#+999+#匿名); hashtable.put(高级,高级#+999+#匿名); if(!英雄榜.exists() try FileOutputStream out=new FileOutputStream(英雄榜); ObjectOutputStream objectOut=new ObjectOutputStream(out); objectOut.writeObject(hashtable); objectOut.close(); out.close(); catch(IOException e) showHeroRecord=new ShowRecord(this,hashtable); setBounds(100,100,280,380); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); validate(); public void actionPerformed(ActionEvent e) if(e.getSource()=初级) mineArea.initMineArea(8,8,10,1); setBounds(100,100,360,340); if(e.getSource()=中级) mineArea.initMineArea(16,16,40,2); setBounds(100,100,320,420); if(e.getSource()=高级) mineArea.initMineArea(22,22,99,3); setBounds(100,100,390,450); if(e.getSource()=自定义)/ userdefine.setvisible(true);/ if(e.getSource()=背景声音)/ voiceshow.setVisible(true);/ if(e.getSource()=游戏规则)/ ruleshow.setVisible(true);/ if(e.getSource()=制作人)/ authorshow.setVisible(true);/ if(e.getSource()=扫雷英雄榜) if(showHeroRecord!=null) showHeroRecord.setVisible(true); if(e.getSource()=退出) System.exit(0); public static void main(String args) new MineGame(); 附录2:import java.awt.*;import java.awt.event.*;import javax.swing.*;import .*;import java.io.*;import java.applet.*;public class MineArea extends JPanel implements ActionListener,MouseListener JButton reStart; Block block; BlockView blockView; URL url;/ String str;/ AudioClip clip; LayMines lay; int row,colum,mineCount,markMount;/雷区的行数、列数以及地雷个数和用户给出的标记数 ImageIcon mark; int grade; JPanel pCenter,pNorth; JTextField showTime,showMarkedMineCount; /显示用时以及标记数 Timer time; /计时器 int spendTime=0; Record record; public MineArea(int row,int colum,int mineCount,int grade) reStart=new JButton(重新开始); /reStart.setSize(4,4); mark=new ImageIcon(mark.gif); /探雷标记 time=new Timer(1000,this); showTime=new JTextField(4); st

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论