Java 如何在LWJGL应用程序中设置postEvent()
是否可以将Java 如何在LWJGL应用程序中设置postEvent(),java,automation,lwjgl,keyboard-events,Java,Automation,Lwjgl,Keyboard Events,是否可以将KeyEvent发布到LWJGL窗口?我想通过编程发送按键和释放键。我的应用程序中有多个窗口,所以我不能使用java.awt.Robot,因为它需要焦点 到目前为止我已经试过了 Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent( new KeyEvent(null, KeyEvent.KEY_PRESSED, System.currentTimeMillis(), 0, KeyEvent.VK_LEF
KeyEvent
发布到LWJGL窗口?我想通过编程发送按键和释放键。我的应用程序中有多个窗口,所以我不能使用java.awt.Robot
,因为它需要焦点
到目前为止我已经试过了
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(
new KeyEvent(null, KeyEvent.KEY_PRESSED, System.currentTimeMillis(), 0,
KeyEvent.VK_LEFT, '\0')
);
没有成功。我只有
Exception in thread "Thread-0" java.lang.IllegalArgumentException: null source
因为空参数。我还尝试放置一个匿名的
java.awt.Component
组件,比如newjpanel()
,而不是null,但什么也没有发生。实现我想要的目标的正确方法是什么?这就是我所说的检查
当然,这需要一些工作,但我相信这正是您需要的。如果没有,那么我完全不知道你想要什么对不起。为什么你想要Lwjgl已经有了自己的关键事件。像
键盘。按键A
和lwjgl有足够的功能来检查按键是否按下、按住或按下。只要在键未按下时使用一个布尔值,那么就有了释放函数(;你不明白我想做什么。我想通过编程将键盘事件模拟到LWJGL,而不使用java.awt.Robot
。我不想轮询事件,而是自己创建一个事件并将其发送到LWJGL。你为什么不想使用Robot?我的应用程序中有多个窗口,我想将事件并行发送到这些窗口。所以我不能使用java.awt.Robot,因为它只向当前有focusCheck out的窗口发送事件
//Component for key focus, could focus it on anything really.
Component source = Component.getFocusComponent();
//Send dispatchEvent EventKey with your example key.
source.dispatchEvent(new KeyEvent(source, KeyEvent.KEY_PRESSED, System.currentTimeMillis(), 0,
KeyEvent.VK_LEFT, '\0');