写点什么

用头像模仿天狗食月

作者:周杰伦本人
  • 2022 年 7 月 06 日
  • 本文字数:1633 字

    阅读完需:约 5 分钟

用头像模仿天狗食月

今天来了兴趣,用头像模仿了一下天狗食月,那么什么是天狗食月呢?


所谓天狗其实就是月食,以前古人不了解这个,所以说月亮被狗吃了,其实是自然界的一种现象,当太阳、地球、月亮三者恰好或几乎在同一条直线上时(地球在太阳和月球之间),太阳到月球的光线便会部分或完全地被地球掩盖,产生月食。


本文章主要用了 Jpanel,那么什么是 Jpanel 呢?


JPanel 是 Java 图形用户界面(GUI)工具包 swing 中的面板容器类,包含在 javax.swing 包,可以加入到 JFrame 窗体中。JPanel 默认的布局管理器是 FlowLayout,其自身可以嵌套组合,在不同子容器中可包含其他组件(component),如 JButton、JTextArea、JTextField 等,功能是对窗体上的这些控件进行组合。


本文主要用到的就是 JPanel 的 paint 方法,一看这个方法就是画画的意思。


代码展示:


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 **/@Slf4jpublic 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); }}
复制代码


下面我简单说一下大体思路,其实很简单:


  1. 新建一个类继承 Jpanel 重写它的 paint 方法

  2. 方法里画天空 月亮和星星 然后加载一张图片 这种图片用来覆盖月亮

  3. 然后不断改变图片的位置,,从而实现天狗食月的效果


最后我将效果图给大家展示一下:



效果图可以说是相当漂亮,快来试一试吧~,喜欢的朋友们给我点个赞再走哦,您的赞是我前进最大的动力的呢~ 哈撒尅!

❤️ 感谢大家

如果你觉得这篇内容对你挺有有帮助的话:


  1. 欢迎关注我❤️,点赞👍🏻,评论🤤,转发🙏

  2. 关注盼盼小课堂,定期为你推送好文,还有群聊不定期抽奖活动,可以畅所欲言,与大神们一起交流,一起学习。

发布于: 刚刚阅读数: 7
用户头像

还未添加个人签名 2020.02.29 加入

公众号《盼盼小课堂》,多平台优质博主

评论

发布
暂无评论
用头像模仿天狗食月_7月月更_周杰伦本人_InfoQ写作社区