代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
流星划过天空
作者:
netCode
/ 发布于
2017/12/19
/
934
流星划过天空
import java.awt.Color; import java.awt.Graphics; import java.awt.image.BufferedImage; import javax.swing.JFrame; import javax.swing.JPanel; public class MeteorFly extends JFrame { final int MAX = ; // (~)流星的个数 final int SLEEP = ; // 流星飞行的速度(数值越大,速度越慢) final int COLORLV = ; // (~)色阶(可改变光晕大小) final String COLOR = null; // ("#"~"#ffffff")光晕颜色(如果不填或null,则为默认颜色) final int SIZE = ; // (~)流星大小 private MyPanel panel; public MeteorFly() { panel = new MyPanel(); this.getContentPane().add(panel); this.setSize(, ); // 创建窗体 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } public static void main(String[] args) { new MeteorFly(); } class MyPanel extends JPanel implements Runnable { Meteor p[]; int AppletWidth, AppletHeight; BufferedImage OffScreen; Graphics drawOffScreen; Thread pThread; public MyPanel() { setBackground(Color.black); //窗体初始化 AppletWidth = ; AppletHeight = ; p = new Meteor[MAX]; for (int i = ; i < MAX; i++) p[i] = new Meteor(); OffScreen = new BufferedImage(AppletWidth, AppletHeight, BufferedImage.TYPE_INT_BGR); drawOffScreen = OffScreen.getGraphics(); pThread = new Thread(this); pThread.start(); } @Override public void paintComponent(Graphics g) { // TODO Auto-generated method stub super.paintComponents(g); g.drawImage(OffScreen, , , this); } @Override final public void run() { while (true) { // drawOffScreen.clearRect(, , AppletWidth, AppletHeight); // // 清屏 for (int i = ; i < MAX; i++) { drawOffScreen.setColor(p[i].color); // RGB颜色 drawOffScreen.fillOval(p[i].x, p[i].y, SIZE, SIZE); p[i].x += p[i].mx; p[i].y += p[i].my; // if (p[i].x > AppletWidth || p[i].y > AppletHeight) { // p[i].reset(); // } int x = p[i].x; int y = p[i].y; int R = p[i].color.getRed(); // 提取颜色 int G = p[i].color.getGreen(); int B = p[i].color.getBlue(); while (true) { if (R == && G == && B == ) { break; } R -= COLORLV; // 尾部颜色淡化 if (R < ) { R = ; } G -= COLORLV; if (G < ) { G = ; } B -= COLORLV; if (B < ) { B = ; } Color color = new Color(R, G, B); x -= p[i].mx; // 覆盖尾部 y -= p[i].my; drawOffScreen.setColor(color); drawOffScreen.fillOval(x, y, SIZE, SIZE); } if (x > AppletWidth || y > AppletHeight) { // 流星飞出窗口,重置流星 p[i].reset(); } } repaint(); try { Thread.sleep(SLEEP); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } class Meteor { // 流星类 int x, y; // 流星的位置 int mx, my; // 下落速度 Color color; // 流星颜色 public Meteor() { reset(); } public void reset() { int rand = (int) (Math.random() * ); //随机生成流星出现位置 if (rand > ) { x = (int) (Math.random() * ); y = ; } else { y = (int) (Math.random() * ); x = ; } mx = (int) (Math.random() * + ); //随机生成下落速度和角度 my = (int) (Math.random() * + ); if (COLOR == null || COLOR.length() == ) { color = new Color( // 随机颜色 (new Double(Math.random() * )).intValue() + , (new Double(Math.random() * )).intValue() + , (new Double(Math.random() * )).intValue() + ); } else { color = Color.decode(COLOR); } } } }
试试其它关键字
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
netCode
贡献的其它代码
(
31
)
.
前端PC-移动端CSS公共样式+HTML
.
流星划过天空
.
实现点击按钮,弹出新窗口
.
map根据value排序
.
查看分区信息
.
#通过Hive导出到本地文件系统
.
2个iframe中checkbox联动
.
据刚刚插入数据的 ID 向另外一张表插入数据
.
用HttpURLConnection提交文件
.
复制专题地址和 url 地址,传给 QQ/MSN 上的好友
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3