gpt4 book ai didi

java - 为什么我的 java 动画不工作?

转载 作者:行者123 更新时间:2023-12-01 18:51:15 24 4
gpt4 key购买 nike

当我希望雨滴向下移动到屏幕底部,然后再做一遍时,一切都是静止的。我使用了可运行的实现,并有一个重新绘制它的运行方法。有人知道我缺少什么吗?

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

public class Screensaver extends JPanel implements Runnable{
private final static int FRAME_HEIGHT = 600;
private final static int FRAME_WIDTH = 600;
int rainY = 100;
int rainGo = 1;
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(FRAME_WIDTH,FRAME_HEIGHT);
frame.add(new Screensaver());
frame.setVisible(true);

}
public Screensaver(){
Color background;
background = new Color(212,202,115);
setBackground(background);
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Color tree;
Color leaves;
Color cloud;
Color rain;
rain = new Color(0,128,255);
cloud = new Color(160,160,160);
leaves = new Color(0,204,0);
tree = new Color(102,0,0);

g.setColor(tree);
//g.drawLine(400, 375, 360, 340);
g.fillRect(400, 250,80, 320 );
g.setColor(leaves);
g.fillOval(340,150 , 200, 160);
g.setColor(cloud);
g.fillOval(10,5,550,100);

Random random = new Random();
int rainX1 = random.nextInt(500) + 40;
int rainW1 = random.nextInt(30) + 10;
int rainX2 = random.nextInt(500) + 40;
int rainW2 = random.nextInt(30) + 10;
int rainX3 = random.nextInt(500) + 40;
int rainW3 = random.nextInt(30) + 10;
int rainX4 = random.nextInt(500) + 40;
int rainW4 = random.nextInt(30) + 10;

g.setColor(rain);
g.fillOval(rainX1, rainY + rainGo, rainW1, rainW1);
g.fillOval(rainX2, rainY+ rainGo, rainW2, rainW2);
g.fillOval(rainX3, rainY+ rainGo, rainW3, rainW3);
g.fillOval(rainX4, rainY+ rainGo, rainW4, rainW4);


}
public void run(){
while(true){
changeRain();
repaint();
}
}
public void changeRain(){
if(rainY+rainGo< FRAME_HEIGHT){
rainGo++;
}
else{
rainGo = 1;
}
}
}

最佳答案

简短回答:您没有启动线程来启动动画。

完整答案:使用 Swings 并发机制之一,例如用于动画的 Swing 计时器。 Swing 计时器旨在与 Swing 组件正确交互。

关于java - 为什么我的 java 动画不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15857642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com