java多线程应用实例制作烟花效果

ID:8975217

大小:55.00 KB

页数:8页

时间:2018-04-13

java多线程应用实例制作烟花效果_第1页
java多线程应用实例制作烟花效果_第2页
java多线程应用实例制作烟花效果_第3页
java多线程应用实例制作烟花效果_第4页
java多线程应用实例制作烟花效果_第5页
资源描述:

《java多线程应用实例制作烟花效果》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Java多线程应用实例:制作烟花效果本例知识点一句话讲解新学知识使用Graphics类绘制烟花使用Thread类管理线程已学知识使用Math类产生随机数使用Color类设置颜色一、练习具体要求本例制作烟花,运行效果如图94-1所示。执行本例实例后,用鼠标点击浏览器中的面板,将出现五彩缤纷的烟花效果。本实例的知识点有:鼠标事件的监听,Graphics类和Thread类的应用。二、程序及注释(1)编程思路:本例因为要模拟烟花效果,所以首先定义执行程序主线程的函数run()对一个烟花进行绘制。在函数run()中定义Graphics类

2、的对象,通过程序中的算法来绘制烟花。然后,因为要实现烟花的缤纷闪烁效果,所以要通过Thread类的Thread.currentThread().sleep()方法使当前线程睡眠,让用户欣赏到当前的绘制效果。最后,因为要实现人机交互.,所以首先要通过mousePressed(MouseEvente)函数来实现对鼠标事件的监听,这样当按下鼠标时,产生一个新线程就可以看到一个新的烟花效果。(2)程序实现及注释:importjava.awt.*;importjava.applet.*;importjava.awt.event.*;im

3、portjavax.swing.*;publicclassFireworksextendsAppletimplementsMouseListener,Runnable{intx,y;inttop,point;/***对小程序进行变量和颜色的初始化。*/publicvoidinit(){x=0;y=0;//设置背景色为黑色setBackground(Color.black);addMouseListener(this);}publicvoidpaint(Graphicsg){}/***使该程序可以作为应用程序运行。*/publi

4、cstaticvoidmain(Stringargs[]){Fireworksapplet=newFireworks();JFrameframe=newJFrame("TextAreaNew");frame.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});frame.getContentPane().add(applet,BorderLayout.CENTER);frame.setSize

5、(800,400);applet.init();applet.start();frame.setVisible(true);}/***程序主线程,对一个烟花进行绘制。*/publicvoidrun(){//变量初始化Graphicsg1;g1=getGraphics();inty_move,y_click,x_click;intv;x_click=x;y_click=y;y_move=400;v=3;intr,g,b;while(y_move>y_click){g1.setColor(Color.black);g1.fillO

6、val(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(newColor(r,g,b));g1.fillOval(x_click,y_move,5,5);for(intj=0;j<=10;j++){if

7、(r>55)r-=20;if(g>55)g-=20;if(b>55)b-=20;g1.setColor(newColor(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(InterruptedExceptione){}}for(intj=12;j>=0;j--){g1.set

8、Color(Color.black);g1.fillOval(x_click,y_move+(j*5),5,5);try{Thread.currentThread().sleep((v++)/3);}catch(InterruptedExceptione){}}y_move=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
正文描述:

《java多线程应用实例制作烟花效果》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Java多线程应用实例:制作烟花效果本例知识点一句话讲解新学知识使用Graphics类绘制烟花使用Thread类管理线程已学知识使用Math类产生随机数使用Color类设置颜色一、练习具体要求本例制作烟花,运行效果如图94-1所示。执行本例实例后,用鼠标点击浏览器中的面板,将出现五彩缤纷的烟花效果。本实例的知识点有:鼠标事件的监听,Graphics类和Thread类的应用。二、程序及注释(1)编程思路:本例因为要模拟烟花效果,所以首先定义执行程序主线程的函数run()对一个烟花进行绘制。在函数run()中定义Graphics类

2、的对象,通过程序中的算法来绘制烟花。然后,因为要实现烟花的缤纷闪烁效果,所以要通过Thread类的Thread.currentThread().sleep()方法使当前线程睡眠,让用户欣赏到当前的绘制效果。最后,因为要实现人机交互.,所以首先要通过mousePressed(MouseEvente)函数来实现对鼠标事件的监听,这样当按下鼠标时,产生一个新线程就可以看到一个新的烟花效果。(2)程序实现及注释:importjava.awt.*;importjava.applet.*;importjava.awt.event.*;im

3、portjavax.swing.*;publicclassFireworksextendsAppletimplementsMouseListener,Runnable{intx,y;inttop,point;/***对小程序进行变量和颜色的初始化。*/publicvoidinit(){x=0;y=0;//设置背景色为黑色setBackground(Color.black);addMouseListener(this);}publicvoidpaint(Graphicsg){}/***使该程序可以作为应用程序运行。*/publi

4、cstaticvoidmain(Stringargs[]){Fireworksapplet=newFireworks();JFrameframe=newJFrame("TextAreaNew");frame.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});frame.getContentPane().add(applet,BorderLayout.CENTER);frame.setSize

5、(800,400);applet.init();applet.start();frame.setVisible(true);}/***程序主线程,对一个烟花进行绘制。*/publicvoidrun(){//变量初始化Graphicsg1;g1=getGraphics();inty_move,y_click,x_click;intv;x_click=x;y_click=y;y_move=400;v=3;intr,g,b;while(y_move>y_click){g1.setColor(Color.black);g1.fillO

6、val(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(newColor(r,g,b));g1.fillOval(x_click,y_move,5,5);for(intj=0;j<=10;j++){if

7、(r>55)r-=20;if(g>55)g-=20;if(b>55)b-=20;g1.setColor(newColor(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(InterruptedExceptione){}}for(intj=12;j>=0;j--){g1.set

8、Color(Color.black);g1.fillOval(x_click,y_move+(j*5),5,5);try{Thread.currentThread().sleep((v++)/3);}catch(InterruptedExceptione){}}y_move=

显示全部收起
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭