在Swing应用程序中,当鼠标在框架内移动时,actionPerformed
方法会停止循环。我该如何解决这个问题?
这是我的程序的基本布局:
ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
// main game loop
}
}
public void paintComponent(Graphics g) {
// render loop
}
我找到了a similar question here。用户发现通过降低鼠标的轮询率,他们解决了问题;但我不能改变我的苹果触控板上的轮询率,也没有提供其他解决方案。此外,它是一个不优雅的解决方案,需要用户更改设置,老实说,必须有一个更好的方法来解决问题。
基本上问题归结为:
答案 0 :(得分:0)
我认为您需要实现“ActionListener”,您可以在其中使用它,因为当您移动时将使用ActionListener,当您单击时,它将是ActionEvent。 您还可以从以下方面获得更多: https://docs.oracle.com/javase/tutorial/uiswing/events/mouselistener.html 和 How can I get the location of the mouse pointer in a JPanel (Without any operation of the Mouse)?