在Swing应用程序中,当鼠标在框架内移动时,actionPerformed
方法停止循环。我怎样才能解决这个问题?如何在窗格内移动鼠标时修复actionPerformed方法冻结?
这里是我的方案的基本布局:
ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
// main game loop
}
}
public void paintComponent(Graphics g) {
// render loop
}
我发现a similar question here。用户发现,通过降低鼠标的轮询速度,他们解决了问题;但是我无法更改我的苹果触控板上的轮询速率,也没有提供其他解决方案。此外,这是一个不雅的解决方案,需要用户更改设置,老实说,必须有更好的方法来解决问题。
基本的问题归结为:
- 有没有办法为我投票率从我的计划之内的变化?我做了一些研究,但找不到解决方案。
- 如何禁用鼠标移动事件,以便不会减慢我的游戏循环? (也可以将它移动到一个单独的进程中,并使用该进程提供的鼠标x和y位置作为游戏循环中的逻辑。)
- 我可以使用什么备用解决方案来解决此问题?
发表[MCVE] ... – user1803551