Java综合实验设计Word文件下载.docx
- 文档编号:15120805
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:22
- 大小:66.58KB
Java综合实验设计Word文件下载.docx
《Java综合实验设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《Java综合实验设计Word文件下载.docx(22页珍藏版)》请在冰豆网上搜索。
使用模块:
对系统包结构、文件结构列表说明,如表2-1、2-2所示。
表2-1
包名
作用
Java.awt.Insets
包含用于创建用户界面和绘制图形图像的所有类
Java.awt.event.ActionEvent
定义了动作的类
Java.awt.event.ActionListener
包含用于创建用户界面和绘制图形图像的所有的类
Java.awt.event.MouseEvent
把类全部导进来
Javax.swing.JOptionPane
有助于方便地弹出要求用户提供或向其发出通知
表2-2
文件名
GameUI.java
程序的主窗体,负责窗口和菜单的绘制以及线程的调用。
MyThread.Java
游戏的线程,主要负责小球的绘制和判断小球是否被接住,以及记录更新分数。
MyListener.java
监听鼠标位置移动的监听器。
用来捕获鼠标的移动和鼠标的当前位置,同时这个类负责板子的绘制与更新。
定义界面:
设置标题
设置大小设置
关闭是退出程序
设置打开窗体时在屏幕中间显示
设置窗体的流式布局管理器
设置窗体背景颜色
创建文本标签对象
设置文本标签前景颜色
创建进度条对象
创建按钮对象
创建菜单条对象
创建菜单对象
创建菜单选项对象
创建单选选项
创建一个按钮组
主要算法描述:
MyThread继承于Thread,使用一个单独的线程进行小球的绘制。
小球的绘制和滑板的绘制大同小异,都是使用java.awt.Graphics进行绘制的。
MyThread还兼顾着进行小球是否被接住的判断。
主要是通过返回的板子的坐标和小球的坐标来判断小球是否在板子上方的一定范围里,如果在,则判断为接住,否则,为掉落
进入游戏画面
根据球出现的位置,移动鼠标使滑板到相应的位置的上方,测试可以接多少个球。
若滑板接到一个球,则玩家就得一分,若接不到球,就游戏结束。
先选择游戏的难度,有简单,中等和困难。
游戏结束,选择否,退出游戏。
游戏结束,选择是,重新开始新的游戏。
分层结构及调用关系说明
2、程序测试报告
用例:
关键代码分析
publicvoidrun(){
drawOval();
}
publicvoiddrawOval(){
UI.text_field.setText(count+"
分"
);
//start=System.currentTimeMillis();
while(isFinish){
while(isPause){
synchronized(this.g){
g.setColor(java.awt.Color.black);
g.fillOval(x,y,width,height);
y+=y1;
getColors();
g.setColor(color);
}
intx2=listener.getX();
if(y<
90){
y1=5;
if(y>
595&
&
x>
x2&
x<
x2+100){
this.fadeOval();
count+=1;
UI.text_field.setText(count+"
y=100;
java.util.Randomran=newjava.util.Random();
x=ran.nextInt(600)+10;
630){
if(isexist){
isAgain();
}
stopThread();
try{
Thread.sleep(speed);
}catch(Exceptionef){
ef.printStackTrace();
}
}
小球的绘制其实就是不断的绘制一个圆形,只不过圆形的y坐标在不停的变化。
难度的控制是通过主程序传入的speed参数来控制的,这个参数用于Thread.sleep(speed),很显然,当这个参数与小球下落的速度成反比。
通过调用UI.text_field.setText()来更新主窗口上的分数。
结果:
结论:
一个好的算法可以让你的程序更健壮,编写的代码量更少,处理异常一直是JAVA里的常事,通过试验,让我对基础的知识更加深入了解,也对更改代码错误有了一定的提升,能看的懂错误的代码错在哪里,并进行修改,使其正确。
这个游戏只是一个简单的接球游戏,如果可以做的更好,就会更好的训练人们的集中力和反应速度,敏捷的做出正确的判断。
附录:
源程序代码:
importjava.awt.Insets;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
/游戏界面类/
publicclassGameUIextendsjavax.swing.JFrame{
privatestaticGameUIUI;
privatejava.awt.Graphicsg;
privateMyListenerml;
publicjavax.swing.JLabeltext_field;
publicjavax.swing.JProgressBarpBar;
privateStringcommand;
publicjava.util.ArrayList<
MyThread>
list=newjava.util.ArrayList<
();
privatejavax.swing.JToggleButtonbutton;
publicstaticvoidmain(Stringargs[])
{
UI=newGameUI();
UI.initUI();
}
/初始化窗体的方法/
publicvoidinitUI(){
//设置标题
this.setTitle("
接球"
//设置大小
this.setSize(610,635);
//设置关闭是退出程序
this.setDefaultCloseOperation(3);
//设置打开窗体时在屏幕中间显示
this.setLocationRelativeTo(null);
//设置窗体的流式布局管理器
this.setLayout(newjava.awt.FlowLayout());
//设置窗体背景颜色
this.getContentPane().setBackground(java.awt.Color.black);
//创建文本标签对象
text_field=newjavax.swing.JLabel();
javax.swing.JLabellable=newjavax.swing.JLabel("
时间:
"
//设置文本标签前景颜色
lable.setForeground(java.awt.Color.red);
text_field.setForeground(java.awt.Color.red);
//创建进度条对象
pBar=newjavax.swing.JProgressBar(0,330);
//创建按钮对象
button=newjavax.swing.JToggleButton();
button.setMargin(newInsets(0,0,0,0));
button.setIcon(newjavax.swing.ImageIcon("
images/Pause.gif"
));
button.setActionCommand("
暂停"
//通过匿名内部类来创建动作监听器
java.awt.event.ActionListenerbutton_listener=newjava.awt.event.ActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringcom=e.getActionCommand();
if(com.equals("
)){
button
.setIcon(newjavax.swing.ImageIcon(
"
images/start.gif"
继续"
for(inti=0;
i<
list.size();
i++){
list.get(i).PauseThread();
))
{
list.get(i).ContinueThread();
};
button.addActionListener(button_listener);
this.add(button);
this.add(lable);
this.add(pBar);
this.add(text_field);
//的到菜单条
javax.swing.JMenuBarbar=creatMenuBar();
//为窗体设置菜单条
this.setJMenuBar(bar);
//设置窗体的可见性
this.setVisible(true);
/创建
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 综合 实验设计