gpt4 book ai didi

Java.drawImage : How do I "unDraw" or delete a image?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:48:38 24 4
gpt4 key购买 nike

我需要在程序运行时不断地在不同位置重绘某个图像。所以我设置了一个 while 循环,它应该在屏幕上移动图像,但它只是一遍又一遍地重绘图像。我究竟做错了什么?有没有办法在将旧图像绘制到新位置之前将其删除?

        JFrame frame = buildFrame();

final BufferedImage image = ImageIO.read(new File("BeachRoad_double_size.png"));

JPanel pane = new JPanel() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
int num = 0;
boolean fluff = true;
while (fluff == true) {
num = num + 1;
g.drawImage(image, num, 0, null);
if (num == 105) {
fluff = false;
}
}
}
};


frame.add(pane);

最佳答案

您不能在 paintComponent() 方法中编写循环代码。代码将执行得如此之快,以至于图像只会绘制在最终位置,在您的情况下,x 位置应为 105。

相反,您需要使用 Swing Timer 每隔 100 毫秒左右安排一次动画。然后当计时器触发时,您更新 x 位置并在面板上调用 repaint() 。阅读 Using Swing Timers 上的 Swing 教程了解更多信息。

关于Java.drawImage : How do I "unDraw" or delete a image?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17867537/

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