版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计综合课程设计任务书1.1主要任务与目标(3)使用所学知识开发一个基于Java的魔板图像游戏。1.2主要内容与基本要求(2)用鼠标单击任何与空格子水平或垂直相邻的方块可以把该方块移入空格以将方块一行一行的按数字序号排好。(3)魔板游戏也可以使用图像来代替数字。例如,对于3*3的魔板,将一幅图各。(4)当用户按要求排列好方块后,程序弹出对话框,提示用户成功的消息。(6)“魔板游戏”提供一幅默认图像,用户可以使用该图像来玩魔板游戏。用(7)对相应的级别增加“英雄榜”功能。当用户成功排列魔板中的方块后,如(8)增加一个查看“英雄榜”的功能,使用户在玩游戏时,可以查看当前游的(9)在HandleMove中增加播放音乐的功能模块,当用户移动方块后,程序播创建File对象(File类属于java.io包):URI对象(URI类属于包):1.3开发工具1.4计划进度(3)4月25日--4月30日:基于魔板拼图游戏玩家信息存储的数据库分析1.5主要参考文献[09]尚俊杰.李芳乐.李浩文《"轻游戏":教育游戏的希望和未来》[期刊论文]-1.6小组分工学生(签字)2011年4月11日 ABSTRACTArelatively"catchputcao"play,thegamecanbeeasywaycanbebaffleplateandseveralblocksdemonswithbothsidesoftheMoBanpatternordigital.ThetwoessioBanpatternofdigitalsaiditsserialnumberrespectively.Gamescanbeadjustedastheuseofmagicplateareaandfreecloth,andthenslidingMoBanproblem,makethestoryunfoldedinfrontoftheireyes,evenifintelligencelowerkindergarten,alsocanspeak,toldstoriesandpicturesdopuzzles,rowpaintingandotherintelligenceboardgames.Makeitsenlightenmendigital,eigncanbompletedingame,eignofsoidanallwaytoaccomplishouresingoal.第一章引言1.1背景魔板游戏作为一种智力小游戏,受到广大中小学生以及一些上班族的喜爱,可以在忙碌的一天之后放松下自己紧绷的精神,同时可也以得到智力的提升。到积极作用,使他们能更好的分析事物。1.2课程设计内容1.2.1需求分析魔板游戏就是大家以前常玩的拼板游戏!就是将一幅完整的图片分成小块,到GUI图形界面的设计,产生随机数生成打乱的图片,各种事件(动作事件、鼠标事件和窗口事件等)的响应和处理等面向对象的知识来实现游戏的各项功1.2.2课程设计内容在设计魔板游戏时,需要编写7个Java源文件:PuzzleGame.ja、vadn(2)PuzzlePad.java该类的成员变量中有5种重要类型的对象:Point、Block、HandleMove、(3)Block.java(4)Point.javak(5)HandleImage.java(6)HandleMove.javass1.2.3设计工具与运行环境(1)设计工具Eclipse、JCreatorPro。(2)运行环境JDK1.6.0、Eclipse、window7。细设计2.1.1用户登录界面图登登录界面输入用户信息验证否输入信息是否法是用户登录到主界面弹出错误信息计时器计时器计时初级改变游戏难度高级改变游戏玩2.1.2设计流程图始魔板游戏开始界面开始移动方块是否选初级是玩法否选择数字玩法玩法完成游戏重新放置方块选择默认图像像确定玩法出图像玩法图像玩法数字玩法使用默认图像选择图像选择级别主界面2.1.3系统开发及运行环境口CPU:P41.8GHz口口口口口口2.1.4系统主要功能要求我们所完成的魔板游戏可以实现基本的魔板游戏的功能。此项目魔板游戏N2.2.1PuzzleGame类(a)PuzzleGame创建的窗口(数字玩法)((b)PuzzleGame创建的窗口(图像玩法)2、UML图1)成员变量2)方法图像魔板。main方法是程序运行的入口方法。2.2.2PuzzlePad类(a)数字魔板(b)图像魔板2、UML图point:Point[][]block:Block[][];s2)方法s2.2.3Black类(a)对象1(b)对象22、UML图block:Block[][]1)成员变量2)方法etObjectObjectobject2.2.4Point类2、UML图xy:intpoint:Point[][]1)成员变量2)方法PointintintPoint对象。Point对象调用setBlock(Block)方法,将参数指定的Block对象放置在当2.2.5HandleImage类口UML图t1)成员变量2)方法HandleImage责完成HandleImage对象的初始化。getImages(Image,int,int)方法将参数指定的图像分成诺干个更小3)代码(HandleImage.java)2.2.6HangleMove类2、UML图HandleMove类是javax.swing包中JPanel容器的一个子类,并实现了point:Point[][]用kt2.2.6VerifySuccess类2、UML图point:Point[][]1)成员变量2)方法第三章魔板游戏系统的具体实现3.1游戏主类的设计tmdefaultImage=newJMenuItem("使用默认图像");//建立指定标题为“使用默认图像”对象3.2魔板对象的实现魔板的生成以及对象的实现。sDigitPlaytPlaytruefor(intk=0;k<m*n-1;k++){}for(inti=0;i<m;i++){if(i<m-1)for(intj=0;j<n;j++){}for(intj=0;j<n-1;j++){}}}}}}}3.3游戏使用时间的设计类游戏之一,Blockblocknull空}}ifpointi[j].isHaveBlock()==false){}}//两个for循环记录了魔板的移动路线以及魔板游戏的进度在行上是否满足了条件在列上是否满足了条件}}3.4游戏成功与否的判断设计}}}3.4程序设计及调试运行潜在的程序错误,并在必要的地方加以注释,以便于程序阅读和修改。try{}//异常处理的操作}增加一个查看“英雄榜”的功能,使用户在玩游戏时,可以查看当前游的最Filefile=newFile("英雄榜.txt");//新建文件用来存放文件JButton显示,重新记分;//按钮sefor(inti=0;i<3;i++){虽然之学了很短一段时间,但还是在其中学到很多东西的。网上查找了一些资料开始了我的课程设计之旅。JPEG格式,了解这点之后这些问题也就迎刃而解了。但重要的这不是最困难的了许多有意义的设计与开发经验。这些对我们来说是无比珍贵的知识和经验财富。在此,向许老师致以最诚挚的谢意。其次还要感谢同学的帮助,在众多同学的帮助下,我们对Java的学习有了[09]尚俊杰.李芳乐.李浩文《"轻游戏":教育游戏的希望和未来》[期刊论文]-PuzzleGamekitimportjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.ObjectOutputStream;importjavax.swing.filechooser.FileNameExtensionFilter;publicclassPuzzleGameextendsJFrameimplementsActionListener{//继承JFrame的类JMenuBarbar;//定义一个菜单条变量JMenugradeMenu,choiceImage,listMenu;//定义两个菜单imageList菜单项JRadioButtondigitPlay,imagePlay;//定义单选(游戏等级以及图像选择)按钮onGroupgroupnullJButtonstartButton;//定义一个按钮Imageimage;//定义一个图像文件Toolkittool;//定义一些基本变量tool=getToolkit();//创建一个菜单条barnewJMenuBar);gradeMenu=newJMenu("选择级别");//建立指定标题为“选择级别”的菜单choiceImage=newJMenu("选择图像");//建立指定标题为“选择图像”的菜单listMenu=newJMenu("排行榜");oneGrade=newJMenuItem("初级");//建立指定标题为“初级”的菜单选项twoGrade=newJMenuItem("高级");//建立指定标题为“高级”的菜单选项newImage=newJMenuItem("选择一幅新图像");//建立指定标题为“选择一幅新图像”的菜单选项defaultImage=newJMenuItem("使用默认图像");//建立指定标题为“使用默认图像”的菜单选项digitList=newJMenuItem("数字玩法");imageList=newJMenuItem("图片玩法");listMenu.add(imageList);setJMenuBar(bar);//设置菜单条里面的组件imageList.addActionListener(this);startButton=newJButton("开始");//监视组件startButton的事件startButton.addActionListener(this);group=newButtonGroup();digitPlay=newJRadioButton("数字玩法",true);//建立一个指定标题“数学玩法”的单选按钮,当其值为true是,表明该按钮选中imagePlay=newJRadioButton("图像玩法",false);//建立一个指定标题“图像玩法”的单选按钮,当其值为false是,表明该按钮选中digitPlay的中间JPanelpNorth=newJPanel();//创建一个面板pNorth.add(digitPlay);//向pNorth添加由参数digitPlay指定的单选按钮pNorth.add(newJLabel("如果图像不能立刻显示,请再单击一次按扭"));//向pNorth添加标题为“如果图像不能立即显示,请再单击一次按钮”的书签validate();//保证窗格的可视化setVisible(true);//确定窗格里面的组件可视化结束窗格所在的应用程序try{image=tool.createImage(newFile("dog.jpg").toURI().toURL());//拼图的材料照片“我们的照片”}//可能出现异常的语句catch(Exceptionexp){}//发生异常后的处理动作createRecordFiledat;createRecordFiledat;}privatevoidcreateRecordFile(Stringname){Filef=newFile(name);if(!f.exists()||f.length()==0){try{ehashtable.put("初级","初级#"+999+"#匿名");hashtable.put("高级","高级#"+999+"#匿名");FileOutputStreamout=newFileOutputStream(f);teObjecthashtablese}catch(IOExceptione){}}}publicvoidactionPerformed(ActionEvente){//Hashtabletable=newHashtable();if(e.getSource()==startButton){if(digitPlay.isSelected()){}}elseif(e.getSource()==newImage){FileNameExtensionFilterfilter=newFileNameExtensionFilter(//创建一个变量名为filter的变量"JPG&GIFImages","jpg","gif");//图片格式chooser.setFileFilter(filter);ullFileif(file!=null&&state==JFileChooser.APPROVE_OPTION){try{image=tool.createImage(file.toURI().toURL());//可能发生异常的语句}catch(Exceptionexp){}//异常处理的操作}}elseif(e.getSource()==defaultImage){try{image=tool.createImage(newFile("dog.jpg").toURI().toURL());puzzlePad.setImage(image);//可能发生异常的语句}catch(Exceptionexp){}//异常处理的操作}elseif(e.getSource()==digitList){//table.put("Number","数字玩法英雄榜");newShowRecord(this,"数字玩法英雄榜").setVisible(true);}elseif(e.getSource()==imageList){//table.put("Image","图片玩法英雄榜");newShowRecord(this,"图片玩法英雄榜").setVisible(true);}}publicstaticvoidmain(Stringargs[]){//定义主函数为静态无返回值的PlayMusicpm=newPlayMusic();pm.playClick();r}}PuzzlePad.javaimportjavax.swing.*;//提供设计GUI界面的类importjava.io.*;importjava.util.*;importjava.awt.*;publicclassPuzzlePadextendsJPanel{//在Jpanel类上创建子类Point[][]point;//Point创建的对象,用来确定魔板中的方块的位置Block[][]block;//用来表示魔板中的方块的行数和列数HandleMovehandleMove;//用来表示魔板中的方块VerifySuccessverifySuccess;//负责验证用户是否按要求成功排列了魔板中的方块Imageimage;//图像对象booleanisDigitPlay;//将魔板设置为数字玩法publicPuzzlePad(){//构造方法,负责创建PuzzlePad对象}publicHandleMovegetHandleMove(){//返回其中的HandleMove对象}publicvoidsetImage(Imageimage){//设置Image对象this.image=image;//指此实例方法的对象}publicvoidsetGrade(intgrade){//设置魔板的级别if(grade==1){handleMove.setGrade("初级");}elseif(grade==2){handleMove.setGrade("高级");}}publicintgetGrade(){}privatevoidneedInit(){//负责完成Block和Point对象的创建,对其他的对象的初始化handleMove.initSpendTime();removeAll();//该方法移掉容器中的全部组件point=newPoint[m][n];//创建对象block=newBlock[m][n];for(inti=0;i<m;i++){for(intj=0;j<n;j++){point[i][j]=newPoint(Hspace,Vspace);ce}}handleMove.setPoint(point);//调用方法verifySuccess.setPoint(point);//调用方法handleMovesetVerifySuccessverifySuccess//调用方法intk=0;for(inti=0;i<m;i++){if(i<m-1)for(intj=0;j<n;j++){block[i][j]=newBlock();block[i][j].addMouseListener(handleMove);//获取监视器k++;}for(intj=0;j<n-1;j++){block[i][j]=newBlock();block[i][j].addMouseListener(handleMove);//获取监视器k++;}}for(inti=0;i<m;i++){if(i<m-1)for(intj=0;j<n;j++){add(block[i][j]);block[i][j].setSize(distance,distance);//设置方块(组件)宽度,高度的大小block[i][j].setLocation(point[i][j].getX(),point[i][j].getY());//设置组件在容器中的位置block[i][j].setAtPoint(point[i][j]);//增加组件blockpoint[i][j].setBlock(block[i][j]);point[i][j].setHaveBlock(true);}for(intj=0;j<n-1;j++){add(block[i][j]);block[i][j].setSize(distance,distance);//设置方块(组件)宽度,高度的大小block[i][j].setLocation(point[i][j].getX(),point[i][j].getY());//设置组件在容器block[i][j].setAtPoint(point[i][jpoint[i][j].setBlock(block[i][j]);point[i][j].setHaveBlock(true);}}}publicvoidsetIsDigitPlay(){//将魔板设置为数字玩法isDigitPlay=true;//当魔板玩法是数字玩法时ArrayList<Integer>numberList=newArrayList<Integer>();//创建方格的数字对象for(intk=0;k<m*n-1;k++){}Collections.shuffle(numberList);//随机排列数字intk=0;for(inti=0;i<m;i++){if(i<m-1)for(intj=0;j<n;j++){block[i][j].setObject(numberList.get(k));k++;}for(intj=0;j<n-1;j++){block[i][j].setObject(numberList.get(k));k++;}}}publicvoidsetIsImagePlay(){//将魔板设置为图像玩法needInit();//调用方法isDigitPlay=false;//当玩法不是数字玩法时ArrayList<Image>imageList=newArrayList<Image>();//创建方格的图像对象for(intk=0;k<blockImage.length-1;k++){}toArrayCollections.shuffle(imageList);//随机排列图像intk=0;for(inti=0;i<m;i++){if(i<m-1)for(intj=0;j<n;j++){block[i][j].setObject(imageList.get(k));block[i][j].repaint();block[i][j].setBorder(null);k++;}for(intj=0;j<n-1;j++){block[i][j].setObject(imageList.get(k));block[i][j].repaint();block[i][j].setBorder(null);k++;}}}板的右侧super.paintComponent(g);if(isDigitPlay==false)//当不是数字玩法时,即图像玩法try{catch,catch无动作,即不对数字玩法进行操作}catch(Exceptionexp){}}}Block.javaimportjavax.swing.*;importjavaawtpublicclassBlockextendsJTextField{//创建一个JTextField的子类BlockPointpoint;//定义成员变量,来确定Black对象在PuzzlePad所创建的模版容器中的位置Objectobject;//定义成员变量,用来确认Block对象上所显示的数字或图像Block(){DsetForeground(Color.blue);//设置界面的颜色为蓝色}publicvoidsetAtPoint(Pointp){//定义一个类,使得Black可以调用该类point=p;//定义一个点p,设置point对象的引用}publicPointgetAtPoint(){//创建类returnpoint;//返回到point}publicvoidsetObject(Objectobject){//定义setObject类this.object=object;//this代表使用该方法的当前对象if(objectinstanceofInteger){//条件判断语句,满足要求时执行下列语句erobjectsetText(""+Value());}elseif(objectinstanceofImage){//不满足if条件语句是执行的条件repaint();}}publicObjectgetObject(){//创建该类returnobject;//返回值}publicvoidpaintComponent(Graphicsg){//创建一个类super.paintComponent(g);intw=getBounds().width;//定义界面的长度inth=getBounds().height;//定义界面的高度try{whthis}catch(Exceptionexp){//发生异常后的处理动作}}}Point.javapublicclassPoint{intx,y;//定义两个整型变量booleanhaveBlock;//定义一个boolean类型的变量Blockblock=null;publicPoint(intx,inty){//有参数的构造函数this.x=x;//this代表使用该方法的当前对象this.y=y;//this代表使用该方法的当前对象}publicbooleanisHaveBlock(){returnhaveBlock;//有返回值}publicvoidsetHaveBlock(booleanboo){haveBlock=boo;//修改数据}publicintgetX(){returnx;}publicintgetY(){}publicbooleanequals(Pointp){if(p.getX()==this.getX()&&p.getY()==this.getY())//两个条件同时满足时,才执行if语句}publicvoidsetBlock(Blockblock){this.block=block;//this代表使用该方法的当前对象}publicBlockgetBlock(){returnblock;}}HandleImage.javaimportjavaawtimportjavax.swing.*;publicclassHandleImageextendsJComponent{//创建一个JComponent的子类HandleImageintimageWidth,imageHeight;//定义魔板游戏的长与宽Toolkittool;//定义对象,用来或则Image对象HandleImage(){//创建对象tool=getToolkit();//给对象中的工具}publicImage[]getImages(Imageimage,introws,intcolums){//创建一个类Image[]blockImage=newImage[rows*colums];//定义该类当中的类变量try{imageWidth=image.getWidth(this);imageHeight=image.getHeight(this);intw=imageWidth/colums;//定义每个小块的宽inth=imageHeight/rows;//定义每个模块的长intk=0;//定义变量KPixelGrabberpg=null;ImageProducerip=null;//设置为空值for(inti=0;i<rows;i++){//外层for循环,实现魔板游戏框架中长度的构成for(intj=0;j<colums;j++){//里层for循环,实现魔板游戏中宽度的实现intpixels[]=newint[w*h];//用数组来存放每一个小魔板pg=newPixelGrabber(image,j*w,i*h,w,h,pixels,0,w);xelsip=newMemoryImageSource(w,h,pixels,0,w);blockImage[k]=tool.createImage(ip);k++;}}}catch(Exceptionee){}returnblockImage;}}HandleMove.javaimportjavaawtimportjavax.swing.*;publicclassHandleMoveextendsJPanelimplementsMouseListener,ActionListener{Point[][]point;intspendTime=0;//定义使用的时间为整型,来记录用户所用的时间javax.swing.TimerrecordTime;//计时器JTextFieldshowTime;//文本框,用来显示时间VerifySuccessverify;//对象,用来确保在程序中对象的引用Recordrecord;//创建记录类的对象用于记录破纪录的成绩HandleMove(){//构造方法,负责创建handMove对象record.setName("数字玩法");record.setGrade("初级");OLDhitMess.setFont(newFont("楷体_GB2312",Font.BOLD,18));//文本框中的一些布局以及字体的显示等的安排add(hitMess);//移动次数的累加addshowTime时间的累加}publicvoidsetIsDigitPlay(booleanb){this.isDigitalPlay=b;}publicvoidsetPoint(Point[][]p){//定义一个类,使可以调用该类point=p;//定义一个点p,设置point对象的引用}publicvoidinitSpendTime(){//定义一个类。使得可以记录游戏所用的时间}publicvoidsetVerifySuccess(VerifySuccessverify){//定义一个类,使得可以调用该类this.verify=verify;}publicvoidsetGrade(Stringgrade){}publicvoidmousePressed(MouseEvente){//鼠标事件recordTime.start();//开始时间触发Blockblock=null;//设置数据为空intw=block.getBounds().width;//输入宽ghtPointstartPoint=block.getAtPoint();//调用point类PointendPoint=null;for(inti=0;i<point.length;i++){//用for循环来实现魔板游戏的进行for(intj=0;j<point[0].length;j++)if(point[i][j].equals(startPoint)){startI=i;}}for(inti=0;i<point.length;i++){for(intj=0;j<point[0].length;j++)if(point[i][j].isHaveBlock()==false){endI=i;endPoint=point[i][j];}}//两个for循环记录了魔板的移动路线以及魔板游戏的进度booleanmoveCondition1=Math.abs(endI-startI)==1&&endJ==startJ;//判断在行上是否满足了条件booleanmoveCondition=Math.abs(endJ-startJ)==1&&endI==startI;//判断在列上是否满足了条件if(moveCondition1||moveCondition2){//魔板游戏结束时,存在的一些信息记录}}publicvoidactionPerformed(ActionEvente){//定义一个事件表现的类actionPerformedshowTime.setText("您的用时:"+spendTime+"秒");//显示框中的文件的显示格式}publicvoidmouseReleased(MouseEvente){if(verify.isSuccess()){dTimestopif(isDigitalPlay)record.setName("数字玩法");Record}else{JOptionPane.showMessageDialog(this,"您成功了!","消息框",JOptionPane.INFORMATION_MESSAGE);}}}}}}}VerifySuccess.javapublicclassVerifySuccess{//创建验证游戏者拼图是否成功的类Point[][]point;//创建对象Object[]object;//创建对象publicvoidsetPoint(Point[][]point){//定义一个类,用来实现调用this.point=point;}publicvoidsetObject(Object[]object){//定义该类,使之可以被用来调用this.object=object;}publicbooleanisSuccess(){//创建一个类判断是否成功booleanboo=true;//给与赋值intk=0;//定义变量k=0for(inti=0;i<point.length;i++){if(i<point.length-1){for(intj=0;j<point[i].length;j++){if(!(point[i][j].getBlock().getObject()==object[k])){//判断移动后的图像顺序与之前设定的顺序是否相等boo=false;break;//返回}k++;//步数累加}}for(intj=0;j<point[i].length-1;j++){if(!(point[i][j].getBlock().getObject()==object[k])){//判断移动后的图像顺序与之前设定的顺序是否相等}k++;//步数累加}}}//ifelse循环用来实现魔板游戏是否成功}}Record.javapublicclassRecordextendsJDialogimplementsActionListener{inttime=0;Stringgrade=null;Stringkey=null;JButton确定,取消;publicRecord(){setTitle("记录你的成绩");setResizable(false);//尺寸非可变,即窗口大小不可变e确定=newJButton("确定");//添加“确定”和“取消”按钮取消=newJButton("取消");textName=newJTextField(8);//添加文本框textName.setText("匿名");//文本框内默认名为“匿名”确定.addActionListener(this);//监视组件“确定”和“取消”的事件setLayout(newGridLayout(2,1));//设定布局流label=newJLabel("您现在是...高手,输入您的大名上榜");}publicbooleanisNewRecord(){//有最新最高成绩的记录类Filef=newFile(name+"英雄榜.dat");try{//可能出现异常的语句nin.close();System.out.println(key);StringTokenizerfenxi=newStringTokenizer(temp,"#");fenxi.nextToken();intn=Integer.parseInt(fenxi.nextToken());if(time<n){ue}}catch(Exceptione){//异常处理}}publicvoidsetName(Stringname){//对话框中显示胜利者的姓名信息label.setText("您现在是"+name+grade+"的高手,输入您的大名上榜");}publicvoidsetGrade(Stringgrade){//对话框中显示胜利者的级别信息label.setText("您现在是"+name+grade+"的高手,输入您的大名上榜");}publicvoidsetTime(inttime){this.time=time;}publicvoidactionPerformed(ActionEvente){//用户单击“确定”之后,执行的操作就是获取用户输入的名字和用时if(e.getSource()==确定){message=grade+"#"+time+"#"+""+textName.getText();//信息为用户姓名和用时setVisible(false);//确定窗格里面的组件非可视化,即关闭窗口}if(e.getSource()==取消){setVisible(false);//确定窗格里面的组件非可视化,即关闭窗口}}publicvoidwriteRecord(Stringkey,Stringmessage){//负责将拼图的用时、级别以及优胜者的姓名等信息写入到“英雄榜”中FilefnewFilenamedattry{//可能出现异常的语句FileInputStreamin=newFileInputStream(f);InputStreamobjectinnewObjectInputStreaminobjectinclose);in.close();StringTokenizerfenxi=newStringTokenizer(temp,"#");fenxi.nextToken();intn=Integer.parseInt(fenxi.nextToken());if(time<n){hashtable.put(key,message);FileOutputStreamout=newFileOutputStream(f);shtable}}catch(Exceptione){//异常处理Systemoutprintlne);}}}ShowRecord.javadextendsJDialogimplementsActionListenerFilefile=newFile("英雄榜.txt");//新建文件用来存放文件Stringname=null;JButton显示,重新记分;//按钮JLabellabel初级[],label高级[];//标签publicShowRecord(JFrameframe,Stringname){file=newFile(name+".dat");setTitle(name);//标题setSize(320,185);//设置英雄榜对话框大小setResizable(false);//尺寸非可变,即窗口大小不可变setVisible(false);//确定窗格里面的组件可视化elabel初级=newJLabel[3];//初级标签label高级=newJLabel[3];//高级标签for(inti=0;i<3;i++){label级[i]=newJLabel();label初级[i].setBorder(null);label级[i]=newJLabel();label高级[i].setBorder(null);}label初级[0].setText("初级");belsetTextlabel初级[2].setText("匿名");label高级[0].setText("高级");belsetTextlabel高级[2].setText("匿名");JPanelpCenter=newJPanel();//面板pCenter.setLayout(newGridLayout(2,3));//设置为格子布局for(inti=0;i<3;i++)pCenter.add(label初级[i]);for(inti=0;i<3;i++)pCenter.add(label高级[i]);e显示=newJButton("显示成绩");//设置按钮重新记分=newJButton("重新记分");显示.addActionListener(this);//添加事件dActionListenerthispSouth.setLayout(newFlowLayout(FlowLayout.RIGHT));//设置为流布局pSouth.add(重新记分);//添加按钮}publicvoidreadAndShow(){//读取存放在晚间中的各个级别的拼图最好成绩以及优胜者姓名的类try{nputStreamfileobjectinclose);in.close();Stringtemp=(String)hashtable.get("初级");StringTokenizerfenxi=newStringTokenizer(temp,"#");labe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 代为办理协议
- 仓储用地土地共有协议书
- FOB贸易合同履行主体合同
- 企业竞争情报咨询合同
- KTV风格别墅租赁合同
- 个人并购贷款协议
- 个人自建房屋安全设施合同
- PE机构项目变更管理
- 人工智能投资协议书
- 亲友互助借款合同模板
- 电子产品维修合同范本1
- 试用期员工转正规章制度(8篇)
- 2023-2024学年全国小学二年级上数学人教版期中考试试卷(含答案解析)
- 《篮球原地双手胸前传接球》教案 (三篇)
- 3上修改病句练习
- 2024年广东茂名高州市教师发展中心和高州市教育事务中心选聘历年高频难、易错点500题模拟试题附带答案详解
- 2024年建筑继续教育-一级建造师继续教育考试近5年真题集锦(频考类试题)带答案
- 上海市浦东新区2023-2024学年六年级上学期期中考试英语试题
- 责任保险行业研究报告
- (高清版)JGT 225-2020 预应力混凝土用金属波纹管
- 化学实验室安全考试试题-及答案
评论
0/150
提交评论