要初始化我的图像,我需要:

imageWater = Toolkit.getDefaultToolkit().getImage("water5.gif");


在我的paintComponent()方法中,我有类似以下内容:

g.drawImage(imageWater, 50, 50, 50, 50, this);


但是,如果我将imageWater的引用更改为与water5.gif(例如water6.gif)不同的文件,则paintComponent()方法中的其他所有内容均无效,即使那些与imageWater完全无关的文件也是如此。我尝试过更改变量和引用,在我将那个确切的文件替换到那个确切的位置之前,没有任何作用。我不明白为什么会这样。

我的理论是,我一直在使用的thread.sleep在paintComponent(或任何其他gui)上表现不佳,而我之前只是出于某种原因而感到幸运。我犹豫要进行测试,因为我在整个文档中都有很多thread.sleep(),也不知道如何替换它们。

最佳答案

“我的理论是,我一直在使用的thread.sleep与paintComponent(或一般的任何gui)表现不佳是正确的。

您没有提供给我们一个可操作的示例来说明这一事实,这使得您很难理解您正在做的事情或您试图实现的目标。

于可能喜欢看一下


Concurrency in Swing
How to use Swing Timers


有关该主题和可能解决方案的更多信息

关于java - 工具箱和paintComponent不能一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14793667/

10-12 04:28