2012面向对象java版课程设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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);

相关文档
最新文档