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多线程相关的知识前,我们首先需要去了解一点操作系统的进程.线程以及相关的基础概念. 进程 通常,我们把一个程序的执行称为一个进程.反过来 ...
最新文章
- iOS 进阶—— iOS内存管理
- node.js 原型污染攻击的分析与利用
- Juliane Begenau
- hdu 5491 The Next(数学模拟)
- 一、Numpy库与多维数组
- click Setuptools Integration
- 视频专家之路【三】:Vs开发环境的搭建
- 三组划分//巧妙填数
- 数据类型和Json格式[zt]
- 20190929每日一句
- 基于信息论的编码技术
- 计算机网络第七版1-3
- word批量转换为pdf python脚本
- 認識新一代標準色域Rec.BT.2020
- 统计文件中元音字母的数量
- 三、【React-Router6】重定向 Navigate
- 2010年终总结报告
- 电脑可以连接网络,但是无Internet访问权限问题排查
- SpringSecurity自定义认证成功处理器
- 2017.11.17 Demo-stm8+temperature timeing control
热门文章
- mysql数字大小排序函数_mysql按照数字大小排序的方法
- 【can总线】stm32的can控制器
- U盘文件被病毒破坏的常见迹象和数据恢复方法
- 润滑剂粘度调节剂的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 提升策划能力提升的法宝
- 教你统计日留存、周留存、月留存率更准确的方法。
- Erlang JAM二三话
- VM虚拟机无法安装WIN7系统,出现“start booting from cd”
- DFS BFS简单理解
- r720 linux 双系统,联想R720拯救者i5 7300黑苹果MacOS10.14.2安装和双系统引导