A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 巴塞罗那的凌晨 中级黑马   /  2015-4-5 21:09  /  2524 人查看  /  21 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  1. import java.awt.*;
  2. import java.applet.*;
  3. import java.awt.event.*;
  4. import javax.swing.*;

  5. public class Fireworks extends Applet implements MouseListener,Runnable
  6. {
  7. int x,y;
  8. int top,point;

  9. /**
  10. *对小程序进行变量和颜色的初始化。
  11. */
  12. public void init()
  13. {
  14. x = 0;
  15. y = 0;
  16. //设置背景色为黑色
  17. setBackground(Color.black);
  18. addMouseListener(this);
  19. }

  20. public void paint(Graphics g)
  21. {

  22. }

  23. /**
  24. *使该程序可以作为应用程序运行。
  25. */
  26. public static void main(String args[]) {
  27. Fireworks applet = new Fireworks();
  28. JFrame frame = new JFrame("TextAreaNew");
  29. frame.addWindowListener(new WindowAdapter() {
  30. public void windowClosing(WindowEvent e){
  31. System.exit(0);
  32. }
  33. });
  34. frame.getContentPane().add(
  35. applet, BorderLayout.CENTER);
  36. frame.setSize(800,400);
  37. applet.init();
  38. applet.start();
  39. frame.setVisible(true);
  40. }

  41. /**
  42. *程序主线程,对一个烟花进行绘制。
  43. */
  44. public void run()
  45. {
  46. //变量初始化
  47. Graphics g1;
  48. g1 = getGraphics();
  49. int y_move,y_click,x_click;
  50. int v;
  51. x_click = x;
  52. y_click = y;
  53. y_move = 400;
  54. v = 3;
  55. int r,g,b;

  56. while(y_move > y_click)
  57. {
  58. g1.setColor(Color.black);
  59. g1.fillOval(x_click,y_move,5,5);
  60. y_move -= 5;
  61. r = (((int)Math.round(Math.random()*4321))%200)+55;
  62. g = (((int)Math.round(Math.random()*4321))%200)+55;
  63. b = (((int)Math.round(Math.random()*4321))%200)+55;
  64. g1.setColor(new Color(r,g,b));
  65. g1.fillOval(x_click,y_move,5,5);
  66. for(int j = 0 ;j<=10;j++)
  67. {
  68. if(r>55) r -= 20;
  69. if(g>55) g -= 20;
  70. if(b>55) b -=20;
  71. g1.setColor(new Color(r,g,b));
  72. g1.fillOval(x_click,y_move+j*5,5,5);
  73. }
  74. g1.setColor(Color.black);
  75. g1.fillOval(x_click,y_move+5*10,5,5);

  76. try
  77. {
  78. Thread.currentThread().sleep(v++);
  79. } catch (InterruptedException e) {}
  80. }

  81. for(int j=12;j>=0;j--)
  82. {
  83. g1.setColor(Color.black);
  84. g1.fillOval(x_click,y_move+(j*5),5,5);
  85. try
  86. {
  87. Thread.currentThread().sleep((v++)/3);
  88. } catch (InterruptedException e) {}
  89. }

  90. y_move = 400;
  91. g1.setColor(Color.black);
  92. while(y_move > y_click)
  93. {
  94. g1.fillOval(x_click-2,y_move,9,5);
  95. y_move -= 5;
  96. }

  97. v = 15;
  98. for(int i=0;i<=25;i++)
  99. {
  100. r = (((int)Math.round(Math.random()*4321))%200)+55;
  101. g = (((int)Math.round(Math.random()*4321))%200)+55;
  102. b = (((int)Math.round(Math.random()*4321))%200)+55;
  103. g1.setColor(new Color(r,g,b));
  104. g1.drawOval(x_click-3*i,y_click-3*i,6*i,6*i);
  105. if(i<23)
  106. {
  107. g1.drawOval(x_click-3*(i+1),y_click-3*(i+1),6*(i+1),6*(i+1));
  108. g1.drawOval(x_click-3*(i+2),y_click-3*(i+2),6*(i+2),6*(i+2));
  109. }
  110. try
  111. {
  112. Thread.currentThread().sleep(v++);
  113. } catch (InterruptedException e) {}
  114. g1.setColor(Color.black);
  115. g1.drawOval(x_click-3*i,y_click-3*i,6*i,6*i);

  116. }

  117. }

  118. /**
  119. *对鼠标事件进行监听。
  120. *临听其鼠标按下事件。
  121. *当按下鼠标时,产生一个新线程。
  122. */
  123. public void mousePressed(MouseEvent e)
  124. {
  125. x = e.getX();
  126. y = e.getY();
  127. Thread one;
  128. one = new Thread(this);
  129. one.start();
  130. one = null;
  131. }
  132. /**
  133. *实现MouseListener接中的方法。为一个空方法。
  134. */
  135. public void mouseReleased(MouseEvent e)
  136. {
  137. }
  138. /**
  139. *实现MouseListener接中的方法。为一个空方法。
  140. */
  141. public void mouseEntered(MouseEvent e)
  142. {
  143. }
  144. /**
  145. *实现MouseListener接中的方法。为一个空方法。
  146. */
  147. public void mouseExited(MouseEvent e)
  148. {
  149. }
  150. /**
  151. *实现MouseListener接中的方法。为一个空方法。
  152. */
  153. public void mouseClicked(MouseEvent e)
  154. {
  155. }

  156. }
复制代码

评分

参与人数 2黑马币 +15 收起 理由
娇娇老师 + 10
熏陶 + 5 山寨

查看全部评分

21 个回复

正序浏览
赞赞赞   
回复 使用道具 举报
?               
回复 使用道具 举报
不明觉厉呢呵呵
回复 使用道具 举报
我这个水平,没看懂。。。。。。
回复 使用道具 举报
cody 中级黑马 2015-5-10 20:29:58
18#
求结果。。。。。。。。。
回复 使用道具 举报
感觉好高端啊!!完全看不懂
回复 使用道具 举报
厉害!!!!!
回复 使用道具 举报
真流弊,我现在才学到强化for循环
回复 使用道具 举报
路过看看
回复 使用道具 举报
好久才出现一个,我一定能编一个比你更好的     哼
回复 使用道具 举报
怪学究 发表于 2015-4-5 23:30
代码好长啊,是蜘蛛纸牌那个烟花么?

不是的  你可以复制代码去玩玩。
回复 使用道具 举报
不明觉厉
回复 使用道具 举报
头好晕 真的晕了
回复 使用道具 举报
大神的世界屌丝目前不懂
回复 使用道具 举报
我还是再学几个月,再过来看吧
回复 使用道具 举报
见识了,不错的点子。
回复 使用道具 举报
路过看看
回复 使用道具 举报
路过看看
回复 使用道具 举报
天好玩的............................
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马