java多线程实现礼花绽放的效果,
2013-12-12 23:21
591 查看
总结:主要是那个红点点在上升的过程中要涂黑色,其实它不是一个点,是一个长条,而是被涂成黑色而隐藏了。还有这个睡眠时间,多线程
是你在面板上随便点,会出现随机的颜色圆圈,点哪里,哪里就可以出现圆
是你在面板上随便点,会出现随机的颜色圆圈,点哪里,哪里就可以出现圆
import java.awt.Color; import java.awt.Graphics; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.Random; import javax.swing.*; public class Test1 { public static void main(String[] args) { JFrame f = new JFrame(); f.setDefaultCloseOperation(3); f.setVisible(true); f.setBounds(100, 100, 500, 500); Panel p = new Panel(); p.setBackground(Color.black); f.add(p); } } class Panel extends JPanel implements MouseListener, Runnable { int x; int y;// 定义那个坐标 public Panel() { this.addMouseListener(this); // this.setBackground(Color.) //在面板上涂成黑色,已经在min函数里定义了,怎么还要这么做呢么? } // 一直往坐上变的顶角跑啊???? @Override public void run() {// 线程=======核心代码 int xx = x; int yy = y; // 在这里添加核心关键的定义, int max_y = 450;// 这个应该是礼花绽放的最高位置吧??? Graphics g = this.getGraphics(); while (yy < max_y) { // GrayFilter g=this.getGraphics();//这个画图的方法在循环外部 g.setColor(Color.red); g.fillOval(xx, max_y = max_y - 5, 5, 5);// 画个圆形是刚开始运行时出现的时候 try { Thread.currentThread().sleep(40); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); }// 睡眠 g.setColor(Color.black); g.fillOval(xx, max_y, 5, 5);// 这里都要画两遍,为什么???在这里坐标不要改为:max_y=max_y-5 } Random r = new Random(); for (int i = 0; i < 53; i++) { g.setColor(Color.yellow); g.setColor(new Color(r.nextInt(255), r.nextInt(255), r.nextInt(255))); g.drawOval(xx - i * 2, max_y - i * 2, i * 4, i * 4); g.drawOval(xx - i * 3, max_y - i * 3, i * 6, i * 6); g.drawOval(xx - i * 4, max_y - i * 4, i * 8, i * 8); try { Thread.currentThread().sleep(40); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } g.setColor(Color.black); g.drawOval(xx - i * 2, max_y - i * 2, i * 4, i * 4); g.drawOval(xx - i * 3, max_y - i * 3, i * 6, i * 6); g.drawOval(xx - i * 4, max_y - i * 4, i * 8, i * 8); } } @Override public void mouseClicked(MouseEvent e) {// 这个方法是,当点击鼠标时的操作 // 这里的E为对象= } @Override public void mousePressed(MouseEvent e) {// 这个方法是按下鼠标的操作 x = e.getX(); y = e.getY();// 你妹啊=。这里用int类型去定义的。 Thread t = new Thread(this); t.start(); } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } }
相关文章推荐
- 在PPT2007中制作礼花绽放动画效果ppt模板打包下载
- JS基于VML技术实现的五角星礼花效果代码
- JS基于VML技术实现的五角星礼花效果代码
- Android游戏开发学习②焰火绽放效果实现方法
- html5实现烟花绽放效果
- jQuery+HTML5实现WebGL高性能烟花绽放动画效果【附demo源码下载】
- linq 查询 实现如果条件为空则加where,否则不加Where的效果
- Settings中下级目录小箭头效果的实现
- android 控件放大缩小效果实现
- 实现自定义view(2):仿Android QQ多屏幕显示ListView的效果
- Android中动画实现单击按钮控制开屏关屏效果(系统animation实现、scrollTo实现、自定义scrollTo实现)
- UGUI 实现Button长按效果(RepeatButton)
- 每日一题_JavaScript.利用纯JavaScript Dom Core实现图片轮播效果?
- 在GridView表头新增图片 实现GridView行折叠展开效果
- 图片3d轮放查看效果(V2.0):使用鼠标拖动实现图片的轮放
- unity3d实现菜单旋转效果
- jquery简单图片切换显示效果实现方法
- UIScrollView实现分页效果
- 使用GLSL实现雾化的效果
- Android内容覆盖透明状态栏下实现全屏模式下带状态栏的效果