以下是一个简单的落雪的 Java 代码示例:\n\njava\nimport java.awt.Color;\nimport java.awt.Graphics;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.ActionListener;\nimport java.util.ArrayList;\nimport java.util.List;\nimport javax.swing.JFrame;\nimport javax.swing.JPanel;\nimport javax.swing.Timer;\n\npublic class Snowfall extends JPanel implements ActionListener {\n private List<Snowflake> snowflakes;\n private Timer timer;\n\n public Snowfall() {\n snowflakes = new ArrayList<>();\n timer = new Timer(10, this);\n timer.start();\n }\n\n @Override\n protected void paintComponent(Graphics g) {\n super.paintComponent(g);\n g.setColor(Color.WHITE);\n for (Snowflake snowflake : snowflakes) {\n g.fillOval(snowflake.getX(), snowflake.getY(), 5, 5);\n }\n }\n\n @Override\n public void actionPerformed(ActionEvent e) {\n for (int i = 0; i < 10; i++) {\n snowflakes.add(new Snowflake(getWidth()));\n }\n for (int i = 0; i < snowflakes.size(); i++) {\n Snowflake snowflake = snowflakes.get(i);\n snowflake.update();\n if (snowflake.getY() > getHeight()) {\n snowflakes.remove(i);\n i--;\n }\n }\n repaint();\n }\n\n public static void main(String[] args) {\n JFrame frame = new JFrame("Snowfall");\n frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\n frame.setSize(800, 600);\n frame.setLocationRelativeTo(null);\n frame.setResizable(false);\n frame.add(new Snowfall());\n frame.setVisible(true);\n }\n}\n\nclass Snowflake {\n private int x;\n private int y;\n private int speed;\n\n public Snowflake(int maxX) {\n x = (int) (Math.random() * maxX);\n y = 0;\n speed = (int) (Math.random() * 3) + 1;\n }\n\n public void update() {\n y += speed;\n }\n\n public int getX() {\n return x;\n }\n\n public int getY() {\n return y;\n }\n}\n\n\n这段代码使用 Java Swing 绘制一个窗口,并在窗口中绘制落雪的效果。每次 actionPerformed 方法被调用时,会添加一些新的雪花,并更新现有雪花的位置。当雪花超出窗口底部时,会将其移除。窗口大小为 800x600 像素,每个雪花的大小为 5x5 像素。每个雪花的速度随机生成。运行代码后,窗口会显示落雪的效果。

Java 实现简单落雪动画代码示例 - Swing 编程

原文地址: https://www.cveoy.top/t/topic/quLz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录