2012面向对象java版课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计
课程设计任务书
II
一、设计目的()
二、总体设计
三、关键技术()
四、程序流程 ()
五、主要源代码
总体设计
在设计魔板游戏时,需要编写7java 源文件:、 PuzzlePad.java 、Point.java 、Block.java 、HandleImage.java 、VerifySuccess.java 和HandleMove.java 。
魔板游戏除了需要编写的上述7个java 源文件所给出的类外,还需要java 系 提供的一些重要的类,如JMenuItem 、JButton 、和JRadioButton 等类。魔板游戏所用到的一些重要的类以及之间的组合关系如图所示。
1.PuzzleGame.java (主类)
PuzzleGame.java 类负责创建魔板游戏的主窗口,该类含有main 方法,程序从该类开始执行。PuzzleGame.java 类的成员变量中有4种重要类型的对象:PuzzlePad 、JMenu 、JRadioButton 和JButton 。
2.PuzzlePad.java
PuzzlePad 类创建的对象是PuzzleGame 类最重要的成员之一,代表“魔板”。该类的成员变量中雨5种重要类型的对象:Point 、Block 、HandleMove 、HandleImage 和Image 。
3.Block.java
Block 类是JTextField 的一个子类,创建的对象是PuzzlePad 类的重要成员之一用来表示“魔板”中的“方块”。
4.Point.java
Point类负责创建确定位置的对象,使用Point对象可以确定Block对象在PuzzlePad对象中的位置,即确定“方块”在“魔板”中的位置。
5.HandleImage.java
HandleImage类所创建的对象负责将一幅图像分成若干个小图像。
6.HandleMove.java
HandleMove类所创建的对象负责处理鼠标事件。
7.VerifySuccess.java
VerifySuccess类所创建的对象负责验证用户是否按要求成功排列魔板中的方块。
三、关键技术
四、程序流程
IV
五、主要源代码
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import javax.swing.filechooser.*;
public class PuzzleGame extends JFrame implements ActionListener{
PuzzlePad puzzlePad;
JMenuBar bar;
JMenu gradeMenu,choiceImage;
V JMenuItem oneGrade,twoGrade,newImage,defaultImage; JRadioButton digitPlay,imagePlay;
ButtonGroup group=null;
JButton startButton;
Image image;
Toolkit tool;
public PuzzleGame(){
tool=getToolkit();
bar=new JMenuBar();
gradeMenu=new JMenu("选择级别");
choiceImage=new JMenu("选择图像");
oneGrade=new JMenuItem("初级");
twoGrade=new JMenuItem("高级");
newImage=new JMenuItem("选择一幅新图像"); defaultImage=new JMenuItem("使用默认图像"); gradeMenu.add(oneGrade);
gradeMenu.add(twoGrade);
choiceImage.add(newImage);
choiceImage.add(defaultImage);
bar.add(gradeMenu);
bar.add(choiceImage);
setJMenuBar(bar);
VI oneGrade.addActionListener(this);
twoGrade.addActionListener(this);
newImage.addActionListener(this);
defaultImage.addActionListener(this);
startButton=new JButton("开始");
startButton.addActionListener(this);
group=new ButtonGroup();
digitPlay=new JRadioButton("数字玩法",true); imagePlay=new JRadioButton("图像玩法",false); group.add(digitPlay);
group.add(imagePlay);
puzzlePad=new PuzzlePad();
puzzlePad.setGrade(1);
puzzlePad.setIsDigitPlay(); add(puzzlePad,BorderLayout.CENTER);
JPanel pNorth=new JPanel();
pNorth.add(digitPlay);
pNorth.add(imagePlay);
pNorth.add(startButton);
pNorth.add(new JLabel("如果图像不能立刻显示,请再单击一次按扭"));
add(pNorth,BorderLayout.NORTH);