资源预览内容
第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
亲,该文档总共8页全部预览完了,如果喜欢就下载吧!
资源描述
Java 多线程应用实例: 制作烟花效果本例知识点一句话讲解使用 Graphics 类绘制烟花新学知识使用 Thread 类管理线程使用 Math 类产生随机数已学知识使用 Color 类设置颜色一、练习具体要求本例制作烟花,运行效果如图 94-1 所示。执行本例实例后,用鼠标点击浏览器中的面 板,将出现五彩缤纷的烟花效果。本实例的知识点有:鼠标事件的监听,Graphics 类和 Thread 类的应用。二、程序及注释(1)编程思路:本例因为要模拟烟花效果,所以首先定义执行程序主线程的函数 run()对一个烟花进行绘制。在函数 run()中定义 Graphics 类的对象,通过程序中的算法 来绘制烟花。然后,因为要实现烟花的缤纷闪烁效果,所以要通过 Thread 类的 Thread.currentThread().sleep()方法使当前线程睡眠,让用户欣赏到当前的绘制效果。 最后,因为要实现人机交互.,所以首先要通过 mousePressed(MouseEvent e)函数来实现 对鼠标事件的监听,这样当按下鼠标时,产生一个新线程就可以看到一个新的烟花效果。(2) 程序实现及注释:import java.awt.*;import java.applet.*;import java.awt.event.*;import javax.swing.*;public class Fireworks extends Applet implements MouseListener,Runnableint 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 ;j55) r -= 20;if(g55) g -= 20;if(b55) 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 ,然后保存为 Fireworks.html 的网页文件。本例制作完毕,用浏览器打开 Fireworks.html 文件便可以看到制作效果。图 94-1 练习效果四、总结提高通过制作烟花的实例,运用了 Java2 中的界面技术和线程技术。通过界面技术,制作出烟花的形状。通过线程技术,控制烟花的播放场景和播放时间。疯狂疯狂 java 简介简介疯狂 Java 是广州为学教育科技有限公司(原广州捷途教育科技有限公司)旗下品牌, 由李刚老师、肖文吉老师联合创建,作为一家专注于 javaEE 和 3G/4G 技术的专业培训服 务机构,疯狂 Java 怀抱“软件强国”的理想,立志以务实的技术来改变中国的软件教育。 以“十年磨一剑”的心态打造全中国最强的 Java 学习体系。疯狂 java 培训讲义疯狂 Java 相继出版疯狂 Java 讲义 、 疯狂 Android 讲义 、 轻量级 JavaEE 企业应 用实战 、 疯狂 Ajax 讲义 、 疯狂 XML 讲义 、 经典 JavaEE 企业应用实战 、 Struts2.1权威指南 、 RubyOnRails 敏捷开发最佳实践 、 疯狂 Java 突破程序员基本功的 16 课 、 疯狂 JAVA 成为程设高手的 16 堂课等著作。其中疯狂 Java 体系图书都是已经得到广 泛的市场认同,并多次重印的畅销图书,并被多家高校选作教材,部分图书已被翻译成繁 体中文版、输出到台湾地区。疯狂 java 发展概况疯狂 Java 紧扣 IT 前沿技术的脉搏,高瞻远瞩立于潮头,引领行业标杆,开创 IT 教育 培训的新天地,被称为新式 IT 教育的“黄埔军校” 。疯狂 java 教育中心主要面对大学生和 准大学生的长期就业培训、企业员工定制内训、在职工程师的短期高端培训以及企业级应 用的产品研发,其专业服务和质量承诺在客户中赢得广泛的声誉。为保服务的质量,学校 与华南理工大学、中山大学、暨南大学、华南师范大学等高等学府建立了师资力量方面的 合作关系,同时与中国电信、中国移动、中国邮政、新华南方、汇丰银行等知名企业建立 了广泛的战略合作伙伴关系。疯狂 java 师资力量疯狂 Java 创始人李刚,携疯狂 Java 精英讲师团队肖文吉、李韩飞、黄勇、陈辉等老 师将带给广大学习者“非一般”的疯狂。疯狂 java 培训特色疯狂 Java 结合自身特色,打破固有思维模式,以突出实战性,系统性,学识转换相结 合的理念体系指引下,注重如何将培训内容真正转化为实操经验,以此促进工作能力的达 成。在疯狂软件学院,学员通过参与企业实际项目开发,学以致用,获得实际项目经验。 凭借自身强悍的师资、一流的课程、真实的项目、超高的就业率已经让广大南方学子成功 走上软件工程师职业道路。大量毕业即失业的学子已通过疯狂 Java 实现了就业。加入疯狂 Java,加入改变世界的力量,让我们一起行动,用自己的代码改变世界!地址:广州市天河区车陂大岗路 4 号沣宏大厦 3011(车陂地铁 D 出口(或者 BRT 车陂站) 过马路左转前行 200 米) 联系电话:联系电话: 020-28309358、28309378 java 技术问题咨询技术问题咨询 QQ:951170790
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号