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

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

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. iOS 进阶—— iOS内存管理
  2. node.js 原型污染攻击的分析与利用
  3. Juliane Begenau
  4. hdu 5491 The Next(数学模拟)
  5. 一、Numpy库与多维数组
  6. click Setuptools Integration
  7. 视频专家之路【三】:Vs开发环境的搭建
  8. 三组划分//巧妙填数
  9. 数据类型和Json格式[zt]
  10. 20190929每日一句
  11. 基于信息论的编码技术
  12. 计算机网络第七版1-3
  13. word批量转换为pdf python脚本
  14. 認識新一代標準色域Rec.BT.2020
  15. 统计文件中元音字母的数量
  16. 三、【React-Router6】重定向 Navigate
  17. 2010年终总结报告
  18. 电脑可以连接网络,但是无Internet访问权限问题排查
  19. SpringSecurity自定义认证成功处理器
  20. 2017.11.17 Demo-stm8+temperature timeing control

热门文章

  1. mysql数字大小排序函数_mysql按照数字大小排序的方法
  2. 【can总线】stm32的can控制器
  3. U盘文件被病毒破坏的常见迹象和数据恢复方法
  4. 润滑剂粘度调节剂的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  5. 提升策划能力提升的法宝
  6. 教你统计日留存、周留存、月留存率更准确的方法。
  7. Erlang JAM二三话
  8. VM虚拟机无法安装WIN7系统,出现“start booting from cd”
  9. DFS BFS简单理解
  10. r720 linux 双系统,联想R720拯救者i5 7300黑苹果MacOS10.14.2安装和双系统引导