首页 > 编程语言 >一个简单的QQ空间下雪效果的Java代码示例

一个简单的QQ空间下雪效果的Java代码示例

时间:2023-10-22 13:12:34浏览次数:40  
标签:QQ Java 示例 int random height width snowCount snowYPositions

 

 以下是一个简单的QQ空间下雪效果的Java代码示例​编辑


```java
import java.awt.*;
import javax.swing.*;

public class SnowFall extends JFrame {
    private int width, height;
    private int snowCount;
    private int[] snowXPositions, snowYPositions;
    private int[] snowSpeed;
    private Color[] snowColors;

    public SnowFall(int width, int height, int snowCount) {
        this.width = width;
        this.height = height;
        this.snowCount = snowCount;
        snowXPositions = new int[snowCount];
        snowYPositions = new int[snowCount];
        snowSpeed = new int[snowCount];
        snowColors = new Color[snowCount];
        for (int i = 0; i < snowCount; i++) {
            snowXPositions[i] = (int) (Math.random() * width);
            snowYPositions[i] = (int) (Math.random() * height);
            snowSpeed[i] = (int) (Math.random() * 5 + 1);
            snowColors[i] = Color.WHITE;
        }
        setBounds(300, 200, width, height);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
        setResizable(false);
    }

    public void paint(Graphics g) {
        g.setColor(Color.BLACK);
        g.fillRect(0, 0, width, height);
        for (int i = 0; i < snowCount; i++) {
            g.setColor(snowColors[i]);
            g.fillOval(snowXPositions[i], snowYPositions[i], 5, 5);
            snowYPositions[i] += snowSpeed[i];
            if (snowYPositions[i] > height) {
                snowXPositions[i] = (int) (Math.random() * width);
                snowYPositions[i] = 0;
                snowSpeed[i] = (int) (Math.random() * 5 + 1);
                snowColors[i] = Color.WHITE;
            }
        }
        try {
            Thread.sleep(100);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        repaint();
    }

    public static void main(String[] args) {
        new SnowFall(800, 600, 200);
    }
}
```
该代码创建了一个名为SnowFall的JFrame,通过在画布上绘制白色小圆点来模拟下雪效果。在paint方法中,先绘制黑色背景,然后循环绘制每个雪片,更新雪片的y位置并重新绘制画面。每次循环后,程序暂停100毫秒以控制帧率。在main方法中创建SnowFall对象时,可以设置窗口大小和雪片数量。

本文转载:https://www.winkp.com/category/qqkongjian

标签:QQ,Java,示例,int,random,height,width,snowCount,snowYPositions
From: https://www.cnblogs.com/zhouyaoyu/p/17780319.html

相关文章

  • 几个非常不错的QQ空间说说非常好听
     1.今天去了一个很棒的咖啡店,品尝了他们的招牌咖啡,还遇到了一个超级友好的店员!#美好的一天#2.有没有人和我一样,觉得春天的花开特别美?今天在公园里散步,看到了各种各样的花,真是让人心旷神怡啊!#春天的花开#3.今天和朋友们一起去了一个新开的餐厅,尝试了他们的特色菜。真的是太好......
  • 01_Java语言概述
    ......
  • Dubbo快速入门_在本工程模块中依赖另外子模块的接口报错java找不到符号
    场景:Dubbo入门案例项目结构:三个子模块dubbodemo_interfacedubbodemo_providerdubbodemo_consumer在消费者和提供者中引入dubbodemo_interface的依赖。dubbodemo_interface中定义了一个接口HelloServicedubbodemo_provider中有HelloService的实现类dubbodemo_consumer中定......
  • Java零基础入门-赋值运算符
    前言Java是一门广泛被应用的编程语言,它被用于开发各种类型的应用程序,从桌面应用程序到企业级后端系统。对于零基础的人来说,学习Java可能会感到有些困难。本文将帮助那些没有编程经验的人了解Java的赋值运算符。摘要本文将介绍Java中赋值运算符的概念、示例以及代码方法介绍。在......
  • Java零基础入门-逻辑运算符
    前言Java是一种广泛应用的编程语言,在在这里插入代码片软件开发中有着重要的地位。本文将介绍Java中的逻辑运算符及其在程序设计中的应用,希望能够帮助零基础的读者更好地入门学习Java。摘要本文将介绍Java中的三种逻辑运算符:与运算符(&&)、或运算符(||)和非运算符(!),并通过源代码......
  • Java零基础入门-关系运算符
    前言Java作为一门广受欢迎的开发语言,其在企业级应用和移动应用开发中有着广泛的应用。如果你是一个Java零基础的初学者,那么你来到了一个正确的地方。在本篇文章中,我们会详细介绍Java中的关系运算符,帮助你快速入门。摘要本文主要介绍Java中的关系运算符。关系运算符用于比较两个......
  • java-01-方法
     1、简单的方法2、带参数的       ......
  • 17-ReentrantLock和java中的aqs
    一、aqsAQS是AbstractQueuedSynchronizer的缩写,是一个用来构建锁和同步器的框架,是线程安全问题(原子性)的一种解决方案通过它可以实现很多不同类型的锁,例如ReentrantLock。主要内容:用state属性来表示资源的状态(分独占模式和共享模式),子类需要定义如何维护这个状态,控......
  • 探索Java中神奇的ThreadLocal:为什么它是多线程编程的重要工具?
    (文章目录)......
  • 报错:java: -source 8 中不支持 记录
    修改项目的字节码版本|Settings|Build,Execution,Deployment|Compiler|JavaCompiler修改项目的LanguageLevel修改Modules的LanguageLevel......