Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在LWJGL应用程序中设置postEvent()_Java_Automation_Lwjgl_Keyboard Events - Fatal编程技术网

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');