logo资料库

JAVA烟花课程设计.doc

第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
资料共9页,剩余部分请下载后查看
课题研究的目的和意义
java编程语言在编程方面的具体应用,以及使用面向对象方法,对小应用程序进行需求分析、概要设计、详细
在编程我们使用的java语言,是目前比较流行的编程语言。在当今这个的时代,java语言在编程方面的优
可行性论证
课题总体设计方案
本例因为要模拟烟花效果,所以首先定义执行程序主线程的函数run()对一个烟花进行绘制。在函数run(
参考文献
课题研究的目的和意义 java 编程语言在编程方面的具体应用,以及使用面向对象方法,对小应用程序进行需求 分析、概要设计、详细设计,最后使用 Java 编程实现的全过程。 在编程我们使用的 java 语言,是目前比较流行的编程语言。在当今这个的时代,java 语言 在编程方面的优势使得编程有了更好的选择。Java 语言最大的特点是具有跨平台性,使其 不受平台不同的影响,得到了广泛的应用。 可行性论证 本例知识点 使用 Graphics 类 使用 Thread 类 使用 Math 类 使用 Color 类 新学 知识 已学 知识 一句话讲解 绘制烟花 管理线程 产生随机数 设置颜色 本例制作烟花,运行效果如图后所示。执行本例实例后,用鼠标点击浏览器中的面板, 将出现五彩缤纷的烟花效果。此课程设计的知识点有:鼠标事件的监听,Graphics 类和 Thread 类的应用。 课题总体设计方案 本例因为要模拟烟花效果,所以首先定义执行程序主线程的函数 run()对一个烟花进行绘 制。在函数 run()中定义 Graphics 类的对象,通过程序中的算法来绘制烟花。然后,因为 要实现烟花的缤纷闪烁效果,所以要通过 Thread 类的 Thread.currentThread().sleep()方 法使当前线程睡眠,让用户欣赏到当前的绘制效果。最后,因为要实现人机交互.,所以首 先要通过 mousePressed(MouseEvent e)函数来实现对鼠标事件的监听,这样当按下鼠标时, 产生一个新线程就可以看到一个新的烟花效果。 程序原代码: import java.awt.*; import java.applet.*; import java.awt.event.*; import javax.swing.*; public class Fireworks extends Applet implements
MouseListener,Runnable { int x,y; int top,point; /** *对小程序进行变量和颜色的初始化。 */ public void init() { } x = 0; y = 0; //设置背景色为黑色 setBackground(Color.black); addMouseListener(this); public void paint(Graphics g) { } /** *使该程序可以作为应用程序运行。 */
public static void main(String args[]) { Fireworks applet = new Fireworks(); JFrame frame = new JFrame("TextAreaNew"); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e){ System.exit(0); } }); frame.getContentPane().add( applet, BorderLayout.CENTER); frame.setSize(800,400); applet.init(); applet.start(); frame.setVisible(true); } /** *程序主线程,对一个烟花进行绘制。 */ public void run() { //变量初始化 Graphics g1; g1 = getGraphics(); int y_move,y_click,x_click;
int v; x_click = x; y_click = y; y_move = 400; v = 3; int r,g,b; while(y_move > y_click) { g1.setColor(Color.black); g1.fillOval(x_click,y_move,5,5); y_move -= 5; r = (((int)Math.round(Math.random()*4321))%200)+55; g = (((int)Math.round(Math.random()*4321))%200)+55; b = (((int)Math.round(Math.random()*4321))%200)+55; g1.setColor(new Color(r,g,b)); g1.fillOval(x_click,y_move,5,5); for(int j = 0 ;j<=10;j++) { } if(r>55) r -= 20; if(g>55) g -= 20; if(b>55) b -=20; g1.setColor(new Color(r,g,b)); g1.fillOval(x_click,y_move+j*5,5,5);
g1.setColor(Color.black); g1.fillOval(x_click,y_move+5*10,5,5); try { Thread.currentThread().sleep(v++); } catch (InterruptedException e) {} } for(int j=12;j>=0;j--) { g1.setColor(Color.black); g1.fillOval(x_click,y_move+(j*5),5,5); try { Thread.currentThread().sleep((v++)/3); } catch (InterruptedException e) {} } y_move = 400; g1.setColor(Color.black); while(y_move > y_click) { g1.fillOval(x_click-2,y_move,9,5); y_move -= 5;
} v = 15; for(int i=0;i<=25;i++) { r = (((int)Math.round(Math.random()*4321))%200)+55; g = (((int)Math.round(Math.random()*4321))%200)+55; b = (((int)Math.round(Math.random()*4321))%200)+55; g1.setColor(new Color(r,g,b)); g1.drawOval(x_click-3*i,y_click-3*i,6*i,6*i); if(i<23) { g1.drawOval(x_click-3*(i+1),y_click-3*(i+1),6*(i+1),6*(i+1)); g1.drawOval(x_click-3*(i+2),y_click-3*(i+2),6*(i+2),6*(i+2)); } try { Thread.currentThread().sleep(v++); } catch (InterruptedException e) {} g1.setColor(Color.black); g1.drawOval(x_click-3*i,y_click-3*i,6*i,6*i); }
} /** *对鼠标事件进行监听。 *临听其鼠标按下事件。 *当按下鼠标时,产生一个新线程。 */ public void mousePressed(MouseEvent e) { x = e.getX(); y = e.getY(); Thread one; one = new Thread(this); one.start(); one = null; } /** *实现 MouseListener 接中的方法。为一个空方法。 */ public void mouseReleased(MouseEvent e) { } /**
*实现 MouseListener 接中的方法。为一个空方法。 */ public void mouseEntered(MouseEvent e) { } /** *实现 MouseListener 接中的方法。为一个空方法。 */ public void mouseExited(MouseEvent e) { } /** *实现 MouseListener 接中的方法。为一个空方法。 */ public void mouseClicked(MouseEvent e) { } } 运行结果: 本实例代码编写完毕,存盘为:C: j2sdk1.4.0\javaprograms\ Fireworks.java。 打开计算机的命令提示符窗口,然后在命令提示符窗口中,定位到 javaprograms 目录,输 入 javac Fireworks.java 来编译程序,最后将程序加载到网页上。在 javaprograms 文件 夹下新建一个记事本文件,内容为
分享到:
收藏