ult*_*ohn 4 java animation multithreading timer
关于Java中的Thread和Timer类,我有一个非常直截了当的问题,作为创建游戏动画的一种方式.哪两个更好?两者之间真正的区别是什么,在Java中动画方面最受欢迎?我希望我的问题能说明,这与我在这里的一个问题得到的答案有关... 问题
GUI需要在EDT上更新以确保正确完成绘画.阅读Swing教程关于并发的部分,以获得有关此概念的完整说明.
当您使用Swing Timer时,事件在EDT中执行,因此您可以告诉组件在新位置重新绘制自己.
当你使用Thread时,循环就在EDT上完成,你需要使用SwingUtilities.invokeLater(...)将绘画代码放回到EDT上.
通常,如果您的代码只是将组件从一个位置移动到另一个位置,那么最简单的方法就是使用Timer.但是,如果您的游戏涉及许多复杂的逻辑,那么您不希望该逻辑在EDT上执行,因为它会阻止GUI响应事件并重新绘制自身.在这种情况下,您可能想要使用Thread.