当前位置:网站首页>用头像模仿天狗食月
用头像模仿天狗食月
2022-07-06 21:33:00 【InfoQ】
用头像模仿天狗食月
import lombok.extern.slf4j.Slf4j;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.*;
/**
* @Author xiepanpan
* @Description //吃月亮
* @Date 9:05 2021/9/8
* @Param
* @return
**/
@Slf4j
public class XppMoonPanel extends JPanel{
int x=700;
public void startRun(){
new Thread(){
public void run(){
while(true){
//头像的横坐标坐标不断自增
//这样去接近月亮和远离,造成天狗食月的效果
for (int i=0;i<1024;i++){
x++;
if(x>1024){
x=0;
}
}
try {
//让线程休眠10毫秒
Thread.sleep(10);
}
catch (InterruptedException e) {
log.info("",e);
}
//自动刷新屏幕,调用paint()方法
repaint();
}
}
}
.start();
}
/*
* @Author xiepanpan
* @Description //开始画
* @Date 9:01 2021/9/8
* @Param [g]
* @return void
**/
public void paint(Graphics g){
super.paint(g);
//天空颜色
this.setBackground(Color.BLACK);
//爱心星空
g.setColor(Color.RED);
for (int i = 0; i < 20; i++) {
g.drawString("", (int) (Math.random() * 1024), (int) (Math.random() * 768));
}
//月亮
g.setColor(Color.yellow);
g.fillArc(500, 100, 200, 200, 0, 360);
ImageIcon icon = new ImageIcon("D:\\1.png");
//设置头像将去覆盖月亮
g.drawImage(icon.getImage(),x,100,200,200,this);
}
}
import javax.swing.JFrame;
/**
* @Author xiepanpan
* @Description //启动
* @Date 9:06 2021/9/8
* @Param
* @return
**/
public class XppMoonFrame {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(1024, 768);
frame.setLocation(100, 100);
XppMoonPanel panel = new XppMoonPanel();
frame.add(panel);
panel.startRun();
frame.setVisible(true);
}
}
- 新建一个类继承Jpanel 重写它的paint方法
- 方法里画天空 月亮和星星 然后加载一张图片 这种图片用来覆盖月亮
- 然后不断改变图片的位置,,从而实现天狗食月的效果
️ 感谢大家
- 欢迎关注我️,点赞,评论,转发
- 关注
盼盼小课堂
,定期为你推送好文,还有群聊不定期抽奖活动,可以畅所欲言,与大神们一起交流,一起学习。
边栏推荐
- QT item table new column name setting requirement exercise (find the number and maximum value of the array disappear)
- Baidu map JS development, open a blank, bmapgl is not defined, err_ FILE_ NOT_ FOUND
- VHDL implementation of single cycle CPU design
- MySQL storage engine
- termux设置电脑连接手机。(敲打命令贼快),手机termux端口8022
- 二进制、八进制、十六进制
- C task expansion method
- vim —- 自己主动的按钮indent该命令「建议收藏」
- How to detect whether the MySQL code runs deadlock +binlog view
- golang 根据生日计算星座和属相
猜你喜欢
codeforces每日5题(均1700)-第七天
如何检测mysql代码运行是否出现死锁+binlog查看
Simple implementation of AVL tree insertion and verification operations
How to detect whether the MySQL code runs deadlock +binlog view
ABAP 動態內錶分組循環
map和set的实现
tflite模型转换和量化
力扣------路径总和 III
SQL injection -day15
R data analysis: how to predict Cox model and reproduce high score articles
随机推荐
[leetcode] 450 and 98 (deletion and verification of binary search tree)
Ggplot facet detail adjustment summary
Using thread class and runnable interface to realize the difference between multithreading
tflite模型转换和量化
使用Thread类和Runnable接口实现多线程的区别
卡尔曼滤波-1
MySQL storage engine
Construction of Hisilicon universal platform: color space conversion YUV2RGB
Implementation of map and set
海思万能平台搭建:颜色空间转换YUV2RGB
One of oscp tools: dirsearch usage Encyclopedia
ABAP 动态内表分组循环
2022电工杯A题高比例风电电力系统储能运行及配置分析思路
太方便了,钉钉上就可完成代码发布审批啦!
codeforces每日5题(均1700)-第七天
QT thread and other 01 concepts
力扣------路径总和 III
21. (article ArcGIS API for JS) ArcGIS API for JS rectangular acquisition (sketchviewmodel)
Confirm the future development route! Digital economy, digital transformation, data This meeting is very important
预处理——插值