如何在Eclipse RCP / LWJGL应用程序中访问键盘?

时间:2011-08-05 19:50:30

标签: keyboard eclipse-rcp lwjgl

我正在研究NeHe OpenGL示例,在Eclipse RCP应用程序中使用LWJGL进行OpenGL绑定。

我的OpenGL图形显示在RCP画布内,而不是单独的窗口中。

第07课显示了如何使用键盘。如果我尝试做:

Keyboard.create();

我收到一个错误(OpenGL)"显示"尚未创建。

如果我创建一个OpenGL"显示"使用org.lwjgl.opengl.Display.create(),然后我得到一个新窗口。

那么如何在没有创建新窗口的情况下访问键盘

1 个答案:

答案 0 :(得分:2)

由于LWJGL在幕后工作的方式,你不能在没有显示器的情况下使用键盘。最好的方法是使用AWT事件。你可以编写自己的输入类,这可能是这样的。

public class Input implements KeyListener {
    private boolean aDown; //is the A key down?
    //Ect, for all needed keys
    public void keyPressed(KeyEvent ke) {
        switch (ke.getKeyCode()) {
            case KeyEvent.VK_A: aDown = true; break;
            //and so on for all other needed keys.
        }
    }

    public void keyReleased(KeyEvent ke) {
        switch (ke.getKeyCode()) {
            case KeyEvent.VK_A: aDown = false; break;
            //and so on for all other needed keys.
        }
    }

    public void keyTyped(KeyEvent ke) {} //Do nothing

    public void isADown() {return aDown;}

}