收藏 分享(赏)

西南交通大学java课程设计.docx

上传人:无敌 文档编号:754404 上传时间:2018-04-21 格式:DOCX 页数:23 大小:44.89KB
下载 相关 举报
西南交通大学java课程设计.docx_第1页
第1页 / 共23页
西南交通大学java课程设计.docx_第2页
第2页 / 共23页
西南交通大学java课程设计.docx_第3页
第3页 / 共23页
西南交通大学java课程设计.docx_第4页
第4页 / 共23页
西南交通大学java课程设计.docx_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、JAVA 综合实验:滑板反射小球游戏专业:电子科学与技术(微电子方向)学号:20132116姓名:李瑞婷2014-2015 第二学期源代码:ball.javapackage org.crazyit.ball;import java.awt.Image;import java.io.File;import javax.imageio.ImageIO;import java.io.IOException;public class Ball extends BallComponent / 定义球的竖向速度private int speedY = 10;/ 定义弹球的横向速度private int s

2、peedX = 8;/ 定义是否在运动private boolean started = false;/ 定义是否结束运动private boolean stop = false;/* m 有参数构造器* * param panelWidth* int 画板宽度* param panelHeight* int 画板高度* param offset* int 位移* param path* String 图片路径*/public Ball(int panelWidth, int panelHeight, int offset, String path)throws IOException / 调

3、用父构造器super(panelWidth, panelHeight, path);/ 设置 y 坐标this.setY(panelHeight - super.getImage().getHeight(null) - offset);/* 设置横向速度* * param speed* int 速度* return void*/public void setSpeedX(int speed) this.speedX = speed;/* 设置竖向速度* * param speed* int 速度* return void*/public void setSpeedY(int speed) th

4、is.speedY = speed;/* 设置是否在运动* * param b* boolean* return void*/public void setStarted(boolean b) this.started = b;/* 设置是否结束运动* * param b* boolean* return void*/public void setStop(boolean b) this.stop = b;/* 返回横向速度* * return int 速度*/public int getSpeedX() return this.speedX;/* 返回竖向速度* * return int 速

5、度*/public int getSpeedY() return this.speedY;/* 是否在运动* * return boolean 是否在运动*/public boolean isStarted() return this.started;/* 是否已经结束运动* * return boolean 是否已经结束运动*/public boolean isStop() return this.stop;BallComponentpackage org.crazyit.ball;import java.awt.Image;import java.io.File;import javax.

6、imageio.ImageIO;import java.io.IOException;public class BallComponent / 设置x坐标private int x = -1;/ 设置y坐标private int y = -1;/ 设置图片private Image image = null;/ 设置图片速度private int speed = 5;public BallComponent(String path) throws IOException super();this.image = ImageIO.read(new File(path);/* 构造器* * par

7、am panelWidth* int 画板宽度* param panelHeight* int 画板高度* param path* String 图片路径*/public BallComponent(int panelWidth, int panelHeight, String path)throws IOException super();/ 读取图片this.image = ImageIO.read(new File(path);/ 设置x坐标this.x = (int) (panelWidth - image.getWidth(null) / 2);/* 构造器* * param x*

8、int 图像的 x坐标* param y* int 图像的 y坐标* param path* String 图片路径*/public BallComponent(String path, int x, int y) throws IOException super();/ 读取图片this.image = ImageIO.read(new File(path);this.x = x;this.y = y;/* 获取x坐标* * return int x坐标*/public int getX() return this.x;/* 获取y坐标* * return int y坐标*/public i

9、nt getY() return this.y;/* 获取图片速度* * return int 图片速度*/public int getSpeed() return this.speed;/* 设置x坐标* * param x* int x坐标* return void*/public void setX(int x) this.x = x;/* 设置y坐标* * param y* int y坐标* return void*/public void setY(int y) this.y = y;/* 返回图片* * return Image 图片*/public Image getImage(

10、) return this.image;BallFramepackage org.crazyit.ball;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.Timer;import java.awt.Dimension;import java.awt.Image;import java.awt.Graphics;import java.awt.Color;import java.awt.event.KeyAdapter;import java.awt.event.KeyListener;import

11、java.awt.event.KeyEvent;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import java.io.IOException;public class BallFrame extends JFrame / 定义JPanel 的宽度private final int BALLPANEL_WIDTH = 307;/ 定义JPanel 的高度private final int BALLPANEL_HEIGHT = 400;/ 定义画板private BallPanel ballPan

12、el = null;/ 定义档板/ private Image stick = null;/ 设置档板x坐标private int stickX = -1;/ 创建一个BallService 实例private BallService service = null;/ 定义一个timerTimer timer = null;/* 默认构造器*/public BallFrame() throws IOException super();/ 初始化initialize();/* 初始化界面* * return void*/public void initialize() throws IOExce

13、ption / 设置窗口的标题this.setTitle(“弹球“);/ 设置为不可改变大小this.setResizable(false);/ 设置背景为黑色this.setBackground(Color.BLACK);/ 获取画板ballPanel = getBallPanel();/ 创建BallService 实例service = new BallService(this, BALLPANEL_WIDTH, BALLPANEL_HEIGHT);/ 定义每0.1秒执行一次监听器ActionListener task = new ActionListener() public void

14、 actionPerformed(ActionEvent e) / 开始改变位置service.run();/ 刷新画板ballPanel.repaint();/ 如果timer不为空if (timer != null) / 重新开始timertimer.restart(); else / 新建一个timertimer = new Timer(100, task);/ 开始timertimer.start();this.add(ballPanel);/ 增加事件监听器KeyListener klarr = this.getKeyListeners();if (klarr.length = 0) / 定义键盘监听适配器KeyListener keyAdapter = new KeyAdapter() public void keyPressed(KeyEvent ke) / 改变档板的坐标service.setStickPos(ke);this.addKeyListener(keyAdapter);/* 获取画板* * return BallPanel 返回BallPanle*/public BallPanel getBallPanel() if (ballPanel = null) / 新建一个画板ballPanel = new BallPanel();/ 设置画板的大小

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 大学论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报