JAVA记忆测试系统功能完善

上传人:xu****iu 文档编号:167102037 上传时间:2022-11-02 格式:DOC 页数:19 大小:323KB
收藏 版权申诉 举报 下载
JAVA记忆测试系统功能完善_第1页
第1页 / 共19页
JAVA记忆测试系统功能完善_第2页
第2页 / 共19页
JAVA记忆测试系统功能完善_第3页
第3页 / 共19页
资源描述:

《JAVA记忆测试系统功能完善》由会员分享,可在线阅读,更多相关《JAVA记忆测试系统功能完善(19页珍藏版)》请在装配图网上搜索。

1、大学课程设计Java记忆测试系统专业班级: 信息与计算科学081班姓名学号: XXX 20084390140姓名学号: XXX 20084390131姓名学号: XXX 20084390111指导教师: 2011 年 6 月 20 日记忆测试系统1 题目简介本游戏是通过由用户点击图片显示出图片后,如果是相同的,便保持图形,如果用户点开的是不同的图片则先前点击的图片被清空。当用户同时点击出规定数目的图片后,弹出保存成绩框。主要内容:u 设计要求u 总体设计u 详细设计u 代码调试u 软件开发u 课程设计题目记忆测试系统是通过回忆法测试记忆能力,测试手段分为初级、中级、高级三个级别。2 设计的内容

2、、要求和目标我们设计的记忆测试系统,除了要编写的6个java文件所给的类外,还需在添加一些功能,如添加图标,改进测试条件,添加音乐功能,使程序有翻开相同的图标是播放一段音乐,不同时播放另一段音乐等。列出菜单,有选择级别,选择图标,成绩记忆榜;在菜单下有M*N个图标随机分布,当点击一个图标,被保存下来,点击下一个图标时与上一个图标比较,图标相同而方块不同则success加1,反之则不变,当点击六个相同的图标时记录所需的时间,保存在成绩记忆排行榜中;点击成绩排行榜,可登陆成绩,且会给成绩排行,由高到低。设计要求:(1) 单击“选择级别”菜单可以选择初级,中级,高级。(2) 单击“查看排行榜”菜单可

3、以查看记忆榜,通过记忆榜存储每个级别的成绩(3) 选择级别后,将出项相应级别的测试区。测试区由M*N个方块组成程序通过设置M和N的值来确定相应的测试级别,例如,对于初级级别,M=5,N=6.每个方块上都有一个图标,但该图标默认不可见。用鼠标当即测试区中的任何一个方块,则计时器开始启动,同时该方块上的图标将显示出来。(4) M*N个方块组成的测试区中有M个图标,每个图标重复出现N次,并且随机分布在测试区中的M*N个方块上。用户必须用鼠标连续单击出N个图标相同的方块,也就是说,如果用户已经用鼠标连续单击出P个图标相同的方块,当再单击另一个方块时,如果该方块的图标和上一个的相同,那么该方块的图标和前

4、P次单击出的方块的图标仍然可见;否则前P次单击出的方块的图标全都变得不可见,只有当前单击的方块的图标可见。(5) 测试区能显示用户的用时,并根据级别的不同,提示用户必须用鼠标连续单击出多少个图标相同的方块。(6) 测试区有提示图标所在位置的功能。用户单击测试区中的“提示”按钮后,测试区将持续1.2秒为用户显示全部方块上的图标。用户每单击一次“提示”按钮,用户的用时将增加10秒。(7) 连续单击出级别所要求的若干个图标相同的方块后,将弹出保存成绩的对话框,用户可以通过该对话框选择是否将自己的成绩保存到成绩表中。(8) 单击“选择图标”菜单可重新选择方块的图标样式,即可以重新选择M个图标。设计目标

5、:(1)改进程序,使用户能为方块选择更多图标。(2)改进测试条件,例如单击鼠标的次数越多则成绩越差等。(3)改进程序,增加更加丰富的音乐效果。当用户成功翻开相同图标方块后,程序播放简短、动听的一声音乐,而用户翻开不相同图标方块,程序播放简短、警告的音乐。用Java可以编写播放.au、.aiff、.wav、.midi、.rfm格式的音频。假设音频文件hello.au位于应用程序当前目录中。3 总体设计在测试系统中,可以编写6个java源文件:MenoryGame.java ,MenoryTestArea.java,Block.java,People.java,Record.java和ShowRe

6、cordDialog.java。记忆测试系统除了上述6个Java源文件产生的类外,还需要Java系统提供的一些重要的类。记忆测试系统所用到的一些重要的类以及之间的组合关系如图1.1所示。MemoryGameStringFileMemoryTestAreaShoeRecordDialogFileTreeSetArrayListStringRecordTimerFileThread 图1.1 类之间的组合关系以下是6个Java原文件的总体设计。1:MenoryGame.java主类MenoryGame类负责创建记忆测试系统的主窗口,该类含有main方法,记忆测试系统从该类开始执行。MenoryGa

7、me类有四种重要类型的对象,分别是String,Flie,MenoryTestArea和ShowRecordDialog对象。MenoryGame类创建的窗口对象以及其中的主要成员对象。MenoryGame类的主要成员的作用将在后面的详细设计中阐述。2:MenoryTestArea.javaMenoryTestArea类是主类MenoryGame窗口中的一个Jpanel容器,所创建的对象称为测试区,这个测试区被添加到MenoryGame窗口的中心。MenoryTestArea类主要有六个种类型的成员:ArrayList,String ,Record,Timer,File和Thread对象。Me

8、noryTestArea类的主要成员的作用将在后面的详细的设计中阐述。3:Block.javaBlock类是Jbutton的子类,负责为MenoryTestArea类中的ArrayList数组表提供Block对象。4:Record.javaRecord类是javax.swing包中Jdialog对话框的子类,当用户成功单击出相应的级别所要求的图标相同的方块后,Record创建的对象负责保存用户的名字和成绩到相应的级别文件中。5:ShowRecordDialog.javaShowRecordDialog类javax.swing包中Jdialog对话框的子类,当用户单击“查看排行榜”时,ShowR

9、ecordDialog创建负责显示用户的成绩。6:People.javaPeople对象封装用户的名字和成绩,以便ShowRecordDialog对象可以按成绩的高低排序用户。4详细设计及实现4.1操作界面设计点击运行,选择级别,图标游戏开始,如果用户不清楚相同图标的位置时,点击提示。界面方案:窗口大小 :setBounds(100,100,400,360);setVisible(true);字体的大小和颜色hinMessage.setFont(new Font(“宋体”,Font.BOLD,18);布局控制:又上到下,先是菜单:选择级别, 查看排行榜,选择图标;提示信息:hintMessag

10、e.setText(“您需要用鼠标单击出”+col+“个同样图标的方块”);图标随机排布,有M*N个方块随机分布,在下面是一记录用户时间的还有提示按钮,提示用户相同图标的位置。 4.2类成员变量及方法设计(一)MemoryGame类效果图 1:成员变量bar是JMenuBar类创建的菜单条,可以向bar中添加菜单。menuGrade、menuResult、menuIcon是JMenu创建的三个菜单,这三个菜单的名称分别是“选择级别”、“查看排行榜”和“选择图标”。oneGradeItem、twoGradeItem、threeGradeIte是JMenuItem类创建的三个菜单项,被添加到men

11、uGrade菜单中,这三个菜单项的名称分别是“初级”,“中级”和“高级”。oneGradeResult、twoGradeResult、threeGradeResult是JMenuItem类创建的三个菜单项,被添加到menuResult菜单中,这三个菜单项的名称分别是“初级排行榜”,“中级排行榜”和“高级排行榜”。carImageIcon、animalImageIcon是JMenuItem类创建的两个菜单项,被添加到menuIcon菜单中,这两个菜单项的名称分别是“汽车图标”和“动物图标”。fileOneGrade、fileTwoGrade、fileThreeGrade和gradeFile是Fi

12、le类创建的四个文件对象。fileOneGrade、fileTwoGrade、fileThreeGrade所引用的文件分别是“初级记忆排行榜.txt”、“中级记忆排行榜.txt”、“高级记忆排行榜.txt”,分别用来写入三个级别的成绩。gradeFile可以是fileOneGrade、fileTwoGrade、fileThreeGrade中的某一个。imageName是String类型的组件,每个单元是一个图像文件的名字。memoryArea是测试区对象,由MemoryArea类负责创建。showDiolag是负责显示成绩的对话框,由ShowRecordDialog类负责创建m和n的int型数

13、据,其值可以确定相应级别中测试区中方块的数量,例如,对于中级水平,m=6,n=7,测试区一个有42个方块。2:方法actionPerformed(ActionEvent)方法是MemoryGame类实现ActionListener接口中的方法,负责执行菜单项发出的有关命令。用户选择菜单中的菜单项可触发ActionEvent事件,导致actionPerformed(ActionEvent)方法执行相应的操作。MemoryGame()是构造方法,负责完成窗口的初始化。main(String)方法是软件运行的入口方法。(二)MemoryTestArea类效果图1成员变量row和col的值确定测试区中

14、方块的数量。MemoryTestArea类创建的对象memoryArea是MemoryGame中的成员,memoryArea对象通过调用initBlock(int,int,String,file)方法将MemoryGame类中m和n的值传递给row和col。usedTime是用户的用时,单位是秒。success的值是用户找到的具有同样的图标的方块的个数。gradeFile是级别文件,memoryArea对象通过调用initBlock(int,int,String,file)方法将MemoryGame类中的gradeFile的引用传递给memoryArea对象中的gradeFile。数组表all

15、BlockList单元的个数是row和col的乘积,它的每个单元存放着一个Block对象。memoryArea对象在调用initBlock(int,int,String,file)方法时完成对allBlockList单元的初始化,即创建单元中的Block对象。字符串数组imageFileName中的每个单元是一幅图像文件的文字。memoryArea对象通过调用setImageName(String)方法将MemoryGame中存放图像文件名字的imageName数组的引用传递给imageFileName。链表openIconList用来存放用户找到的图标相同的方块上的图标。链表openBloc

16、kList用来存放用户找到的图标相同的方块。hintThread是用Thread类创建的线程对象,用来提示测试区中的Block上的图标,提示方式是将测试区中的各个Block上图标持续显示1200毫秒。hintButton是注册了ActionEvent事件的监听器,当单击它时,启动hintThread线程。showUsedTime显示用户的用时,即显示usedTime的值。hintMessage根据不同的级别显示相应的提示信息,如该级别需要用户寻找的相同图标方块的数目。timer是计时器,负责改变usedTime的值。record负责提供保存成绩的界面,是一个对话框,默认不可见。当用户寻找出级别

17、所要求的相同图标方块的数目后,该对话框可见,用户可以在该对话框中输入姓名,并保存所输入的姓名和usedTime的值到gradeFile指定的级别文件中。2方法 MemoryTestArea()是构造方法,创建memoryArea对象时需使用该构造方法。initBlock(int,int,String,file)方法。memoryArea对象调用该方法将参数的值传递给row、col、imageFileName和gradeFile,并依据这些值设置allBlockList数组表的大小,然后创建allBlockList的单元中Block对象,并设置Block对象上的图标。setImageName(S

18、tring)方法。memoryArea对象调用该方法可以将MemoryGame中存放图像文件名字的imageName数组的引用传递给imageFileName。当用户单击MemoryGame主类窗口的cartImageIcon和animalImageIcon菜单项时,memoryArea对象将调用该方法把存放图像文件名字的imageName数组的引用传递给imageFileName。actionPerformed(ActionEvent)方法。该方法是MemoryArea类实现的ActionListener接口中的方法。memoryArea中的每个Block对象都注册了ActionEvent事

19、件监听器,当用户单击memoryArea中的某个Block对象时,actionPerformed(ActionEvent)方法将被调用执行,所执行的主要操作是:如果该Block对象未显示图标,并且该Block对象设置的图标和openIconList的中存放的图标相同,就将该图标添加到链表openIconList中,同时将该Block对象上图标显示出来,并将success的值增1;如果该Block对象未显示图标,并且该Block对象设置的图标和openIconLis的中存放的图标不相同,就将openIconList清空,然后再将该图标添加到链表openIconList中,同时将该Block对象上

20、图标显示出来,并将success的值设置成1。但用户单击hintButton按钮时,actionPerformed(ActionEvent)方法将被调用执行,执行的主要操作是启动hintThread线程。run()方法。该方法是MemoryArea类实现的Runnable接口中的方法,启动hintThread线程后,该方法将执行,其主要操作是将测试区中的未显示图标的各个Block对象上的图标持续显示1200毫秒。(三)Blcok类效果图 (a)图标不可见时的方块 (b)图标可见时的方块1成员变量openStateIcon是方块上的图标2方法 Block对象调用setOpenStateIcon(

21、ImageIcon)方法可以设置它上面的图标。Block对象调用openStateIcon()方法可以获得它上面的图标。(四)ShowRecordDialog类效果图1成员变量gradeFile是对话框要读取的文件,该文件存储成绩。clear是注册了ActionEvent事件的按钮。showArea文本区显示对话框从gradeFile文件中读出的成绩。treeSet负责将成绩按高低排序。2方法ShowRecordDialog()是构造方法,负责创建showDialog对象。setGradeFile(File)方法。ShowRecordDialog类创建的ShowRecordDialog对话框是

22、主类MemoryGame窗口中的一个成员。当用户选择窗口上的“查看排行榜”菜单中的菜单项时,ShowRecordDialog对话框调用setGradeFile(File)方法将相应的级别文件传递给gradeFile。showRecord()方法。ShowRecordDialog对话框调用showRecord()方法读取gradeFile文件中的成绩,为了将成绩按高低顺序显示在showArea文本区中,showRecord()方法根据读取的名字和该名字的对应成绩,创建一个People对象,并将该People对象存放在treeSet树集中。actionPerformed(ActionEvent)是

23、ActionListener接口中的方法,clear注册了ActionEvent事件,当用户单击clear按钮时,actionPerformed(ActionEvent)方法被调用执行,清除gradeFile文件中的内容。(五)People类People是我们编写的一个类,该类对象中的数据使用户的姓名和成绩,被显示在ShowRecordDialog对话框中shoeArea的文本区中的内容形式。1成员变量name是用户的名字。time是用户的用时。2方法getTime()方法返回time。getName()方法返回name。compareTo(Object)是comparable接口中的方法,其

24、操作是确定People对象的大小关系。 (六)Record类效果图1成员变量 time是用户的用时。 yourName是用户用来输入名字的文本框。enter,cancel是按钮对象,用户单击enter按钮可保存成绩,单击cancel按钮可放弃保存成绩。gradeFile是级别文件。2方法Record()是构造方法,负责创建record对象。setGradeFile(File)方法。Record类创建的Record对话框是测试区MemoryTestArea中的一个成员。当用户成功单击出相应级别所要求的图标相同的方块后,测试区弹出Record对话框,Record对话框将调用setGradeFile

25、(File)方法将测试区中的级别文件传递给Record对话框gradeFile。setTime(int)方法。当用户成功单击出相应级别所要求的图标相同的方块后,测试区弹出Record对话框,Record对话框将调用setTime(int)方法将测试区记录的用户用时传递给Record对话框中的time。actionPerformed(ActionEvent)是ActionListener接口中的方法,enter和cancel按钮注册了ActionEvent事件,当用户单击enter时,actionPerformed(ActionEvent)方法被调用执行,其操作是将用户在文本框yourName中

26、输入的名字以及time的值保存到gradeFile文件中,然后关闭当前对话框;当用户单击cancel按钮时,actionPerformed(ActionEvent)方法将被调用执行,其操作是关闭当前对话框。4.3源代码分析MenoryGameimport javax.swing.*;import java.awt.*;import java.awt.event.*;import java.io.*;import java.util.LinkedList;public class MemoryGame extends JFrame implements ActionListener JMenuB

27、ar bar; /创建一个菜单条bar JMenu menuGrade,menuResult,menuIcon; /创建3个菜单 选择级别、查看排行榜、选择图标 JMenuItem oneGradeItem,twoGradeItem,threeGradeItem; /添加到menuGrade中,初级、中级高级 JMenuItem oneGradeResult,twoGradeResult,threeGradeResult; JMenuItem carImageIcon,animalImageIcon,huaImageIcon; /创建菜单项 File fileOneGrade,fileTwoG

28、rade,fileThreeGrade,gradeFile; /创建文件 其中gradeFile可以是前三个中的任意一个 String imageName; /每个单元是一个图像文件的名字 MemoryTestArea memoryArea; ShowRecordDialog showDiolag=null; /负责显示成绩的对话框 int m=5,n=6; /m,n确定相应级别中测试区中方块的数量 默认等级为初级 final int imageNumber=7; /构造方法 MemoryGame() fileOneGrade=new File(初级记忆排行榜.txt); fileTwoGra

29、de=new File(中级记忆排行榜.txt); fileThreeGrade=new File(高级记忆排行榜.txt); bar=new JMenuBar(); menuGrade=new JMenu(选择级别); oneGradeItem=new JMenuItem(初级); twoGradeItem=new JMenuItem(中级); threeGradeItem=new JMenuItem(高级); menuGrade.add(oneGradeItem); /将菜单项添加到菜单 menuGrade.add(twoGradeItem); menuGrade.add(threeGra

30、deItem); menuResult=new JMenu(查看排行榜); oneGradeResult=new JMenuItem(初级排行榜); twoGradeResult=new JMenuItem(中级排行榜); threeGradeResult=new JMenuItem(高级排行榜); menuResult.add(oneGradeResult); menuResult.add(twoGradeResult); menuResult.add(threeGradeResult); menuIcon=new JMenu(选择图标); carImageIcon=new JMenuIte

31、m(汽车图标); animalImageIcon=new JMenuItem(动物图标); huaImageIcon=new JMenuItem(花图标); animalImageIcon.addActionListener(this); /添加监视器 carImageIcon.addActionListener(this); huaImageIcon.addActionListener(this); menuIcon.add(carImageIcon); menuIcon.add(animalImageIcon); menuIcon.add(huaImageIcon); bar.add(me

32、nuGrade); /将菜单添加到菜单条 bar.add(menuResult); bar.add(menuIcon); setJMenuBar(bar); oneGradeItem.addActionListener(this); twoGradeItem.addActionListener(this); threeGradeItem.addActionListener(this); oneGradeResult.addActionListener(this); twoGradeResult.addActionListener(this); threeGradeResult.addActio

33、nListener(this); if(!fileOneGrade.exists() /是否存在*文件,不存在创建此文件 try fileOneGrade.createNewFile(); catch(IOException exp) if(!fileTwoGrade.exists() try fileTwoGrade.createNewFile(); catch(IOException exp) if(!fileThreeGrade.exists() try fileThreeGrade.createNewFile(); catch(IOException exp) setBounds(10

34、0,100,400,360); this.setSize(new Dimension(700,400); setVisible(true); memoryArea=new MemoryTestArea(); imageName=new StringimageNumber; /设置默认情况下为初级汽车图标 for(int i=0;iimageName.length;i+) imageNamei=new String(car+i+.jpg); m=5; n=6; gradeFile=fileOneGrade; memoryArea.initBlock(m,n,imageName,gradeFile

35、); add(memoryArea,BorderLayout.CENTER); showDiolag=new ShowRecordDialog(); validate(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/退出应用程序 关闭窗口. /事件处理 public void actionPerformed(ActionEvent event) if(event.getSource()=oneGradeItem) m=5; n=6; gradeFile=fileOneGrade; memoryArea.initBlock(m,n,image

36、Name,gradeFile); if(event.getSource()=twoGradeItem) m=6; n=7; gradeFile=fileTwoGrade; memoryArea.initBlock(m,n,imageName,gradeFile); if(event.getSource()=threeGradeItem) m=7; n=8; gradeFile=fileThreeGrade; memoryArea.initBlock(m,n,imageName,gradeFile); if(event.getSource()=carImageIcon) for(int i=0;

37、iimageName.length;i+) imageNamei=new String(car+i+.jpg); memoryArea.setImageName(imageName); memoryArea.initBlock(m,n,imageName,gradeFile); if(event.getSource()=animalImageIcon) for(int i=0;iimageName.length;i+) imageNamei=new String(ani+i+.jpg); memoryArea.setImageName(imageName); memoryArea.initBl

38、ock(m,n,imageName,gradeFile); if(event.getSource()=huaImageIcon) for(int i=0;iimageName.length;i+) imageNamei=new String(hua+i+.jpg); memoryArea.setImageName(imageName); memoryArea.initBlock(m,n,imageName,gradeFile); if(event.getSource()=oneGradeResult) showDiolag.setGradeFile(fileOneGrade); showDio

39、lag.showRecord(); showDiolag.setVisible(true); if(event.getSource()=twoGradeResult) showDiolag.setGradeFile(fileTwoGrade); showDiolag.showRecord(); showDiolag.setVisible(true); if(event.getSource()=threeGradeResult) showDiolag.setGradeFile(fileThreeGrade); showDiolag.showRecord(); showDiolag.setVisi

40、ble(true); public static void main(String args) new MemoryGame(); /构造方法,负责完成窗口的初始化 MenoryTestAreaimport javax.swing.*; import java.awt.event.*;import java.awt.*;import java.util.*;import java.io.*;import java.applet.*;import .*;public class MemoryTestArea extends JPanel implements ActionListener,Run

41、nable /实现ActionListener和,Runnable接口,所创建的对象 int row,col; File gradeFile; ArrayList allBlockList; /数组表allBlockList 每个单元存放一个Block对象 String imageFileName; /字符串数组*中每个单元是一幅图像文件的名字 LinkedList openIconList; LinkedList openBlockList; /java.util 的 类 LinkedList 链接列表 主要方法为 /add(E e) 将指定元素添加到此列表的结尾。 int success=

42、0; /用户找到的具有同样的方块的个数 Thread hintThead; /用来提示测试区中的Block对象 JButton hintButton,pauze,kk,restart; /声明各个按钮 int usedTime=0; JTextField showUsedTime,hintMessage; javax.swing.Timer timer; Record record; JPanel center,south,north; File musicFile; URI uri; URL url; AudioClip clip; Boolean timerisstart=false; /

43、定义一个布尔值来判断计时是否开始 MemoryTestArea() setLayout(new BorderLayout(); /布局设置 allBlockList=new ArrayList(); openIconList=new LinkedList(); openBlockList=new LinkedList(); hintThead=new Thread(this); hintMessage=new JTextField(); hintMessage.setHorizontalAlignment(JTextField.CENTER); /设置文本对齐方式 hintMessage.se

44、tEditable(false); /不可编辑 hintMessage.setFont(new Font(宋体,Font.BOLD,18); /字体设置 /设置三个容器 center=new JPanel(); south=new JPanel(); north=new JPanel(); hintButton=new JButton(提示); pauze=new JButton(暂停游戏); kk=new JButton(继续游戏); restart=new JButton(重新开始); hintButton.addActionListener(this); kk.addActionList

45、ener(this); /为继续游戏按钮添加事件监听 pauze.addActionListener(this); /为暂停游戏按钮添加事件监听 restart.addActionListener(this); showUsedTime=new JTextField(8); showUsedTime.setEditable(false); showUsedTime.setHorizontalAlignment(JTextField.CENTER); south.add(new JLabel(用时:) ; /在容器中添加标签 south.add(showUsedTime); south.add(

46、new JLabel(提示图标位置(导致次数增加):) ; south.add(hintButton); north.add(pauze); north.add(kk); north.add(restart); north.add(hintMessage); add(south,BorderLayout.SOUTH); add(north,BorderLayout.NORTH); timer=new javax.swing.Timer(1000,this); record=new Record(); / 创建record文件,当用户成功完成时弹出对话框,写入record /保存用户 游戏的游戏

47、记录 public void initBlock(int m,int n,String name,File f) row=m; col=n; gradeFile=f; center.removeAll(); imageFileName=name; ImageIcon icon=new ImageIconimageFileName.length; for(int i=0;iicon.length;i+) iconi=new ImageIcon(imageFileNamei); if(allBlockList.isEmpty() for(int i=0;irow*col;i+) allBlockL

48、ist.add(new Block(); else allBlockList.clear(); for(int i=0;irow*col;i+) allBlockList.add(new Block(); for(int i=0;iallBlockList.size();i+) allBlockList.get(i).addActionListener(this); /get()方法:get(int index)返回此列表中指定位置处的元素。 allBlockList.get(i).setOpenStateIcon(iconi%row); /*调用 Block 的方法 加载图片: void s

49、etOpenStateIcon(ImageIcon icon) openStateIcon=icon; */ Collections.shuffle(allBlockList); /随机排列allBlockList中的节点 center.setLayout(new GridLayout(row,col); for(int i=0;iallBlockList.size();i+) center.add(allBlockList.get(i); add(center,BorderLayout.CENTER); if(timer.isRunning() timer.stop(); hintMessa

50、ge.setText(您需要用鼠标单击出+col+个同样图标的方块); usedTime=0; showUsedTime.setText(null); validate(); public void setImageName(String name) imageFileName=name; public void actionPerformed(ActionEvent e) ImageIcon icon=new ImageIconimageFileName.length; if(e.getSource()=pauze) timer.stop(); for(int i=0;iallBlockLi

51、st.size();i+) allBlockList.get(i).setEnabled(false); if(e.getSource()=kk) timer.start(); timerisstart=true; for(int i=0;iallBlockList.size();i+) allBlockList.get(i).setEnabled(true); if(e.getSource()=restart) /设置重新开始的按钮。 for(int i=0;iallBlockList.size();i+) allBlockList.get(i).setOpenStateIcon(iconi

52、%row); Collections.shuffle(allBlockList); /使用默认随机源对指定列表进行置换 usedTime=0; timer.stop(); hintMessage.setText(请点击等级选择开始游戏!); timerisstart=false; for(int i=0;iallBlockList.size();i+) allBlockList.get(i).setEnabled(true); if(e.getSource() instanceof Block) /它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据 /判断是否为 B

53、lock 对象; if(!timer.isRunning() timer.start(); Block block=(Block)e.getSource(); ImageIcon openStateIcon=block.getOpenStateIcon(); block.setIcon(openStateIcon); if(openIconList.size()=0) openIconList.add(openStateIcon); openBlockList.add(block); success=1; else ImageIcon temp=openIconList.getLast();

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!