如何在LWJGL应用程序中postEvent()

时间:2013-11-19 00:17:59

标签: 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_LEFT, '\0')
);

没有成功。我只得到

Exception in thread "Thread-0" java.lang.IllegalArgumentException: null source

因为null参数。我也尝试将匿名java.awt.Component设为new JPanel()而不是null,但没有任何事情发生。实现我想要的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

这就是我所说的Component

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

当然,这需要一些工作,但我相信这就是你所需要的 如果没有,那么我完全不知道你想要什么抱歉。