java多线程实现动态效果_java多线程实现礼花绽放的效果,
总结:主要是那个红点点在上升的过程中要涂黑色,其实它不是一个点,是一个长条,而是被涂成黑色而隐藏了。还有这个睡眠时间,多线程
是你在面板上随便点,会出现随机的颜色圆圈,点哪里,哪里就可以出现圆
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多线程实现礼花绽放的效果,相关推荐
- 在PPT2007中制作礼花绽放动画效果ppt模板打包下载
家家户户都有除夕放烟花的习惯,尤其是一些小地方城市,过节礼花那是必不可少的. 毕业论文ppt背景放礼花可以增添节日的喜庆气氛,但是大家也需要注意自身安全,下面简单介绍一下礼花绽放动画效果的制作. 1. ...
- java线程代码实现_Java 多线程代码实现讲解
作为一个完全面向对象的语言,Java提供了类 java.lang.Thread 来方便多线程编程,这个类提供了大量的方法来方便我们控制自己的各个线程.那么如何提供给 Java 我们要线程执行的代码呢? ...
- java 锁旗标_Java多线程
Java多线程 1. 多线程存在的意义 多线程最大的作用就是能够创建"灵活响应"的桌面程序,而编写多线程最大的困难就是不同线程之间共享资源的问题,要使这些资源不会同时被多个线程访问 ...
- java线程怎么用_Java多线程基本使用
一.概念 1.进程 1.1进程:是一个正在进行中的程序,每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元. 1.2线程:就是进程中一个独立的控制单元,线程在控制着进程的执行,一 ...
- java同步与死锁_Java多线程 - 线程同步与死锁
一.线程同步 1)模拟多个用户同时从银行账户里面取钱 ● Account 类:银行账户类,里面有一些账户的基本信息,以及操作账户信息的方法 //模拟银行账户 classAccount {private ...
- java多线程 生产者消费者_java多线程之-生产者与消费者
java多线程之-并发协作[生产者与消费者]模型 对于多线程程序来说,不管c/c++ java python 等任何编程语言,生产者与消费者模型都是最为经典的.也就是可以说多线程的并发协作 对于此模型 ...
- java 线程面试题_JAVA多线程面试题(一)
1.进程和线程的区别 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用.而线程是在进程中执行的一个任务.Java运行环境是一个包含了不同的类和程序的单一进 ...
- java多线程总结图_Java多线程总结之Queue
标签:多线程(52)JAVA(605) 上个星期总结了一下synchronized相关的知识,这次将Queue相关的知识总结一下,和朋友们分享. 在Java多线程应用中,队列的使用率很高,多数生产消费 ...
- java进程与线程_Java多线程笔记(零):进程、线程与通用概念
前言 不积跬步,无以至千里:不积小流,无以成江海.在学习Java多线程相关的知识前,我们首先需要去了解一点操作系统的进程.线程以及相关的基础概念. 进程 通常,我们把一个程序的执行称为一个进程.反过来 ...
最新文章
- Mysql报错Forcing close of thread 139 user: 'root'
- Spark配置高可用(HA)
- Spring Security 实战:自定义异常处理
- 边缘生——保研与考研到底如何抉择!
- java 树表_java 树与表心得
- 关于提高代码复用性的几个知识点的回顾
- 第一节 接口概述 [转贴]
- mysql-数据库的设计三范示与ER模型
- CSV格式整理,去除与上一行数据重复的单元格
- ajaxsubmit方法的一种实现
- asp.net页面生命周期之页面的终结阶段
- atiitt it学科体系化 体系树与知识点概念大总结.xlsx
- 极大值极小值搜索设计五子棋
- 简述冯诺依曼体系结构计算机的工作原理。
- 国内外主流的三维GIS软件
- SpringBoot2——web开发(组件使用)
- python:2019新年贺词的词云制作以及基于TF-IDF的关键词提取
- Testin徐琨:颠覆测试行业的四个必杀技
- 如何理解特征函数characteristic function
- 破解Kotlin协程创建调用的那些事