魔板游戏_java课设_含可运行程序文件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
系统的流程图如图2所示。
图2 魔板游戏系统流程图
2.3.2 总体设计
(1)PuzzleGame.java(主类)
PuzzleGame类负责创建魔板游戏的主窗口,该类含有main方法,程序从该类开始执行。PuzzleGame雷的成员变量中有4种重要类型的对象:PuzzlePad、JMenu、JRadioButton和JButton。PuzzleGame类的主要成员的作用将在后面的详细设计中阐
述,PuzzleGame类创建的窗口以及其中的主要成员对象如图3所示。
图3 PuzzleGame窗口及主要的成员对象
(2)PuzzlePad.java
PuzzlePad类创建的对象是PuzzleGame类最重要的成员之一,代表“魔板”。该类的成员变量中有5种重要类型的对象:Point、Block、HandleMovee、HandleImage 和Image。PuzzlePad类的主要成员的作用将在后面的详细设计中阐述。
(3)Block.java
Block类是JTextField的一个子类创建的对象是PuzzlePad类的重要成员之一,用来表示“魔板”中的“方块”。
(4)Point.java
Point类负责创建确定位置的对象,使用Point对象可以确定Block对象在PuzzlePad对象中的位置,即确定“方块”在“魔板”中的位置。
(5)HandleImage.java
HandleImage类所创建的对象负责将一幅图像分成若干个小图像。
(6)HandleMove.java
HandleMove类所创建的对象负责处理鼠标事件。
digitPlay和imagePlay是JRadioButton创建的属于同一选择组中的单选框,名字依次为“数字玩法”,“图像玩法”。同一时刻,digitPlay和imagePlay中只能有一个处于选中状态。
startButton是JButton创建的按钮对象,名字为“开始”。startButton将当前窗口注册为自己的ActionEvent事件监视器。
image是Image声明的对象。
Tool是Toolkit对象,负责创建image对象。
②方法
PuzzleGame()构造方法,负责完成窗口的初始化操作。
actionPerformed(ActionEvent)方法是PuzzleGame类实现ActionListener接口中的方法。PuzzleGame类创建的窗口是菜单中的菜单项、单选框以及按钮上的ActionEvent事件监视器。如果用户选中oneGrade或twoGrade菜单项时actionPerformed
(ActionEvent)方法所执行的操作分别让puzzlePad对象将自己的级别设置为以及或二级。如果用户选中newImage或defaultImage菜单项时,actionPerformed(ActionEvent)方法所执行的操作就是分别改变image对象。当用户单击start按钮后,如果单选框disPlay处于被选中状态,那么actionPerformed (ActionEvent)方法所执行的操作就是让puzzlePad对象使用数字魔板,如果单选框imagePlay被选中时,那么actionPerformed (ActionEvent)方法所执行的操作就是让puzzlePad对象使用图像魔板。
(2)PuzzlePad类
效果图:PuzzlePad创建的魔板对象效果如图7所示。
(a)数字魔板(b)图像魔板
图7 PuzzlePad创建的魔板对象
UML图:PuzzlePad类是javax.swing包中JPanel容器的子类,所创建的对象:puzzlePad是PuzzleGame类中最重要的成员之一,作为一个容器添加到PuzzleGame
图11 Point 类的UML 图
(5)HandleImage 类 效果图:HandleImage 创建的对象负责将一幅图像分解为若干个小的图像,没有可显示的效果图。
UML 图:HandleImage 类是javax.swing 包中JComponent 类的一个子类,创建的对象HandleImage 负责将一幅图像分解为若干个小的图像,是PuzzlePad 类的重要成员之一。HandleImage 类的主要成员变量和方法以及和PuzlePad 类之间的组合关系的UML 图如图12所示。
图12 HandleImage 类的UML 图
(6)HandleMove 类
效果图:HandleMove 创建的对象效果图如图13所示。
图13 HandleMove 创建的对象
JComponent
HandleImage
PuzzlePad handleImage:HandleIma ge imageWidth,imageHeight:int
tool:Toolkit
HandleImage():无类型
geiImages(Image,int,int):Image
[] Point
PuzzlePad Point:Point[][] X,y:int
haveBlock:boolean
block:Block
Point(int,int):无类型
isHaveBlock():boolea
n
setHaveBlock(Boolea
n):void
geiX():int
getY():int equals(TowerPoint):B oolean set(Block):void getBlock():Block