有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java正确的swing动画并发方法?

我将要写一个动画,其中JPanel上的角色在用户按下(并按住)相应的键时左/右移动

现在,由于我对并发性还不熟悉,我想问:处理动画的代码(即只要按住键就会移动和重新绘制角色的方法)是在工作线程还是在事件调度线程上执行的

我在swing中阅读了关于并发性的教程,似乎改变组件的东西(在本例中是绘制JPanel)应该在事件处理线程上,但另一方面,只要按住一个键,就会冻结所有其他事件,对吗

例如,如果我理解正确的话,用户在按住向左键时将无法暂停游戏。那么,哪种方法是正确的,为什么?或者可能有完全不同的方式制作这样的动画

提前谢谢


共 (1) 个答案

  1. # 1 楼答案

    所有的绘画都需要在EDT线上完成。从来没有在任何其他线程。使用 勇气。调用器()。。为了你的画。你可以计算角色在工作线程上的下一个位置。如果你在EDT上创建和使用Swing类,你不会有任何反应迟钝。只要确保你的计算不会太长。对于动画,只要找到角色的下一个位置,就可以调用 猪肠。调用器更新UI上的更改