gpt4 book ai didi

java - 当我调用 repaint() 方法时,屏幕上没有显示任何内容

转载 作者:行者123 更新时间:2023-12-01 13:10:50 25 4
gpt4 key购买 nike

这可能是一个常见问题,但对于每种情况来说可能都是独一无二的。

这是我在代码中调用 .repaint() 的地方:

timer = new Timer(5, new ActionListener() {
double t = 0;
public void actionPerformed(ActionEvent e) {

ArrayList<Particle> fireworks = manager.getFireworks(t/1000);
showFireworks(fireworks,t/1000);
t = t + timer.getDelay();
for (Particle projectile : fireworks) {
canvas = new FireworksDisplay(projectile);
canvas.repaint();
add(canvas);
}
}
});

它正在创建一个烟花粒子的 ArrayList(它工作正常,因为我测试了在控制台窗口中打印 (x,y) 位置并且运行良好)。我希望我的程序在屏幕上为 ArrayList 列表的每个成员绘制一个小粒子

这是我的 DrawPanel

    private class FireworksDisplay extends JPanel {
private Color colour;
private int xPos;
private int yPos;
private int size;
public FireworksDisplay(Particle particle) {
super();
String string = particle.getColour();
string = string.toLowerCase();
switch(string) {
case "blue": this.colour = Color.blue;
break;
case "red": this.colour = Color.red;
break;
case "green": this.colour = Color.green;
break;
case "orange": this.colour = Color.orange;
break;
case "cyan": this.colour = Color.cyan;
break;
case "magenta": this.colour = Color.magenta;
break;
case "yellow": this.colour = Color.yellow;
break;
case "pink": this.colour = Color.pink;
break;
default: this.colour = Color.white;
break;
}
double[] positions = particle.getPosition();
this.xPos = (int) (getWidth()*positions[0]*(50) + tubeImage.getSize().width/2);
this.yPos = (int) (getHeight()*positions[1]*(50) + tubeImage.getSize().height - 100);

this.size = particle.getRenderSize();

}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(colour);
g.fillOval(xPos, yPos, size, size);
}
}

由于某种原因,即使我绘制的所有其他时间都成功,它也没有绘制到屏幕上。

我发布的代码是否有问题,或者您认为其他地方有问题?

最佳答案

请记住,实例化后需要调用 Timerstart() 方法。

此外,每次 Timer 触发时,您都会添加一个新的 JPanel。您可能需要重写代码,以便只需绘制新的 Particle 即可。

关于java - 当我调用 repaint() 方法时,屏幕上没有显示任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22883794/

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