gpt4 book ai didi

java - SwingUtilities.invokeLater() 仅在一帧期间显示

转载 作者:行者123 更新时间:2023-11-29 05:45:26 27 4
gpt4 key购买 nike

我正在使用 Swing 来创建一个小型 Java 2D 游戏。我只尝试显示图像。因为我不在 EDT 上,所以我使用 SwingUtilities.invokeLater() 来做这些事情。当我使用它时,图像不显示(实际上它在几毫秒内显示并消失)。当我不使用 SwingUtilities.invokeLater() 时,图像会正确显示,但我需要使用 invokeLater()。

这是我的基本代码:

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
try {
SwingUtilities.invokeAndWait(new Runnable() {

@Override
public void run() {
final BreizhFrame frame = new BreizhFrame();
File imgFile = new File("src/test/lvl1-800x450.jpg");
System.out.println(String.valueOf(imgFile.exists()));
System.out.println(SwingUtilities.isEventDispatchThread());
Image i;
try {
i = ImageIO.read(imgFile);
frame.getGraphics().drawImage(i, 0, 0, null);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
} catch (InvocationTargetException | InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

有什么想法吗?

谢谢。

最佳答案

这不是您在 Java 中的做法。是的,您正在绘制图像,但一段时间后控件失效,并且在没有您的图像的情况下重新绘制。

This tutorial should help you

关于java - SwingUtilities.invokeLater() 仅在一帧期间显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16013050/

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