Java 在多线程游戏中处理鼠标输入

Java 在多线程游戏中处理鼠标输入,java,multithreading,swing,mouseevent,Java,Multithreading,Swing,Mouseevent,首先,我为这个问题的不规范性道歉,我试图解释所有重要的事情,但没有遗漏任何重要的东西或给予任何额外的东西,但我可能没有做得最好。我会发布代码,但是有太多的代码无法发布 我正在用Java开发一个游戏,不使用外部库。我有一个主类,它也处理我的Jframe。它设置所有内容,如大小、标题等,然后启动一个新线程,处理其他非基本设置的内容。这是一个循环,直到游戏结束。它基本上包括更新,然后渲染。这些方法调用状态管理类中的相应方法,该类包含我为所有GUI扩展的自定义GUI类的实例。我将它声明为GUI,而不是G

首先,我为这个问题的不规范性道歉,我试图解释所有重要的事情,但没有遗漏任何重要的东西或给予任何额外的东西,但我可能没有做得最好。我会发布代码,但是有太多的代码无法发布

我正在用Java开发一个游戏,不使用外部库。我有一个主类,它也处理我的Jframe。它设置所有内容,如大小、标题等,然后启动一个新线程,处理其他非基本设置的内容。这是一个循环,直到游戏结束。它基本上包括更新,然后渲染。这些方法调用状态管理类中的相应方法,该类包含我为所有GUI扩展的自定义GUI类的实例。我将它声明为GUI,而不是GUI的子类之一,这样每当我需要切换GUI时,我就可以无缝地切换到新的GUI中。因此,程序的基本流程是线程更新->状态管理器更新->GUI更新,然后是渲染。所以我的问题是,既然我在线程外声明了Jframe,那么将鼠标输入传递到线程中的最佳方式是什么?如果只有一个对象可以抓取并发送到GUI中,那么应该很简单。但是由于在每一帧之间可能有多个mouseevent来自MouseAdapter,我似乎不知道该怎么做。我想到的最好的办法是制作一个MouseEvents数组,然后在update方法中对其进行迭代。然而,出于某种原因,Eclipse在运行时不断给我错误。我试图制作数组,所以我在大约一分钟内就放弃了。

什么是真正将所有内容渲染到屏幕上的核心组件?JFrame本身。我的主类扩展了JFrame,并实现了Runnable。它有一个图形对象,我在构造函数中设置为this.getGraphics,然后使用线程绘制到。this.getGraphics不是应该如何绘制的。看一看和了解有关如何进行绘画以及如何在摇摆中进行绘画的详细信息