在挥杆应用中,当鼠标在框架内移动时,actionPerformed
方法停止循环。我该如何解决?
这是我程序的基本布局:
ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
// main game loop
}
}
public void paintComponent(Graphics g) {
// render loop
}
我在这里找到了一个类似的问题。用户发现,通过降低鼠标的轮询率,它们解决了问题。但是,我无法更改Apple触控板上的轮询率,也没有提供其他解决方案。这也是一个不高的解决方案,需要用户更改设置,老实说,必须有一种更好的方法来解决问题。
基本上的问题归结为:
- 我有没有办法从程序中更改投票率?我做了一些研究,找不到解决方案。
- 如何禁用鼠标运动事件,以免减慢我的游戏循环?(也许也将其移动到一个单独的过程,并使用该过程在游戏循环中为逻辑提供的鼠标X和Y位置。(
- 我可以实施什么替代解决方案来解决此问题?
我认为您需要在其中实现" ActionListener",因为当您移动时,将工作actionListener,当您单击时,它将已经是ActionEvent。另外,您可以从中获得更多:https://docs.oracle.com/javase/tutorial/uiswing/events/mouselistener.html和如何在JPanel中获取鼠标指针的位置(无需鼠标操作(?