总结:主要是那个红点点在上升的过程中要涂黑色,其实它不是一个点,是一个长条,而是被涂成黑色而隐藏了。还有这个睡眠时间,多线程

是你在面板上随便点,会出现随机的颜色圆圈,点哪里,哪里就可以出现圆

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

}

}

java多线程实现动态效果_java多线程实现礼花绽放的效果,相关推荐

  1. 在PPT2007中制作礼花绽放动画效果ppt模板打包下载

    家家户户都有除夕放烟花的习惯,尤其是一些小地方城市,过节礼花那是必不可少的. 毕业论文ppt背景放礼花可以增添节日的喜庆气氛,但是大家也需要注意自身安全,下面简单介绍一下礼花绽放动画效果的制作. 1. ...

  2. java线程代码实现_Java 多线程代码实现讲解

    作为一个完全面向对象的语言,Java提供了类 java.lang.Thread 来方便多线程编程,这个类提供了大量的方法来方便我们控制自己的各个线程.那么如何提供给 Java 我们要线程执行的代码呢? ...

  3. java 锁旗标_Java多线程

    Java多线程 1. 多线程存在的意义 多线程最大的作用就是能够创建"灵活响应"的桌面程序,而编写多线程最大的困难就是不同线程之间共享资源的问题,要使这些资源不会同时被多个线程访问 ...

  4. java线程怎么用_Java多线程基本使用

    一.概念 1.进程 1.1进程:是一个正在进行中的程序,每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元. 1.2线程:就是进程中一个独立的控制单元,线程在控制着进程的执行,一 ...

  5. java同步与死锁_Java多线程 - 线程同步与死锁

    一.线程同步 1)模拟多个用户同时从银行账户里面取钱 ● Account 类:银行账户类,里面有一些账户的基本信息,以及操作账户信息的方法 //模拟银行账户 classAccount {private ...

  6. java多线程 生产者消费者_java多线程之-生产者与消费者

    java多线程之-并发协作[生产者与消费者]模型 对于多线程程序来说,不管c/c++ java python 等任何编程语言,生产者与消费者模型都是最为经典的.也就是可以说多线程的并发协作 对于此模型 ...

  7. java 线程面试题_JAVA多线程面试题(一)

    1.进程和线程的区别 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用.而线程是在进程中执行的一个任务.Java运行环境是一个包含了不同的类和程序的单一进 ...

  8. java多线程总结图_Java多线程总结之Queue

    标签:多线程(52)JAVA(605) 上个星期总结了一下synchronized相关的知识,这次将Queue相关的知识总结一下,和朋友们分享. 在Java多线程应用中,队列的使用率很高,多数生产消费 ...

  9. java进程与线程_Java多线程笔记(零):进程、线程与通用概念

    前言 不积跬步,无以至千里:不积小流,无以成江海.在学习Java多线程相关的知识前,我们首先需要去了解一点操作系统的进程.线程以及相关的基础概念. 进程 通常,我们把一个程序的执行称为一个进程.反过来 ...

最新文章

  1. Mysql报错Forcing close of thread 139 user: 'root'
  2. Spark配置高可用(HA)
  3. Spring Security 实战:自定义异常处理
  4. 边缘生——保研与考研到底如何抉择!
  5. java 树表_java 树与表心得
  6. 关于提高代码复用性的几个知识点的回顾
  7. 第一节 接口概述 [转贴]
  8. mysql-数据库的设计三范示与ER模型
  9. CSV格式整理,去除与上一行数据重复的单元格
  10. ajaxsubmit方法的一种实现
  11. asp.net页面生命周期之页面的终结阶段
  12. atiitt it学科体系化 体系树与知识点概念大总结.xlsx
  13. 极大值极小值搜索设计五子棋
  14. 简述冯诺依曼体系结构计算机的工作原理。
  15. 国内外主流的三维GIS软件
  16. SpringBoot2——web开发(组件使用)
  17. python:2019新年贺词的词云制作以及基于TF-IDF的关键词提取
  18. Testin徐琨:颠覆测试行业的四个必杀技
  19. 如何理解特征函数characteristic function
  20. 破解Kotlin协程创建调用的那些事

热门文章

  1. string.Compare字符串比较函数中文详解以及与Equal、==的区别
  2. Bootstrap 模态框(Modal)的属性及方法
  3. android VideoView的使用例程
  4. 16周监考---期末考试...
  5. vue项目JS播放音频音效和背景音乐
  6. 3D空间 圆柱体画线
  7. magic魔术师分身问题
  8. 阿里巴巴复杂搜索系统的可靠性优化之路
  9. 控制学习笔记(1)——反步控制法
  10. 安全交流:浅谈sql注入式(SQL injection)攻击与防范