gpt4 book ai didi

java - 添加的 BufferedImage 只有 2x2 像素

转载 作者:行者123 更新时间:2023-11-29 03:54:47 25 4
gpt4 key购买 nike

我有一个脚本,它使用线程 (animationThread) 循环(几乎像幻灯片一样)通过 Vector 对象 (flipBook),并将它们添加到 JPanel。但是,添加的图像只有 2x2 像素大。我已验证图像为 50x50,但它们似乎没有正确显示。

这是 Thread 实例背后的一些代码。我不完全确定哪些代码有助于查找源代码。

public void startThread() {
if (flipWidth != 0 && flipHeight != 0) {
System.out.println("[ AnimationAsset ] " + "We're starting the thread");
Runnable r = new Runnable() {
@Override
public void run() {
runWork();
}
};
animationThread = new Thread(r, "AnimationThread");
animationThread.start();
going = true;
}
}
private void runWork() {
try {
while (going) {
repaint();
flipIndex = (flipIndex + 1) % numFlips;
System.out.println("[ AnimationAsset ] flipIndex: " + flipIndex);
Thread.sleep(1000);
}
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
System.out.println("[ AnimationAsset ] " + "Interrupted");
}
}
public void paint(Graphics g) {
update(g);
}
public void update(Graphics g) {
System.out.println("[ AnimationAsset ] " + flipIndex);
((Graphics2D) g).drawImage(flipBook.get(flipIndex), null, 5, 5);

}

最佳答案

and adds them to a JPanel

这不是 Swing 代码。这是 AWT 代码。

在使用 Swing 时,您永远不会以这种方式覆盖 update() 和 paint() 方法。删除此代码并重新开始。

要在 Swing 中执行此操作,我将使用带有图标的 JLabel 并将标签添加到框架。

然后,要在 SWing 中制作动画,您应该使用 Swing Timer .

当计时器触发时,您只需使用标签的 setIcon(...) 方法将旧图标替换为新图标。

关于java - 添加的 BufferedImage 只有 2x2 像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6969783/

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