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

Keyboard 如何在Eclipse RCP/LWJGL应用程序中访问键盘?,keyboard,eclipse-rcp,lwjgl,Keyboard,Eclipse Rcp,Lwjgl,我正在研究NeHe OpenGL示例,在Eclipse RCP应用程序中使用LWJGL进行OpenGL绑定 我的OpenGL图形显示在RCP画布中,而不是单独的窗口中 第07课演示如何使用键盘。如果我尝试执行以下操作: Keyboard.create(); 我得到一个错误,即(OpenGL)“显示”尚未创建 如果我用org.lwjgl.OpenGL.Display.create()创建一个OpenGL“Display”,那么我会得到一个新窗口 那么,如何在不创建新窗口的情况下访问键盘呢?由于L

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

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

第07课演示如何使用键盘。如果我尝试执行以下操作:

Keyboard.create();
我得到一个错误,即(OpenGL)“显示”尚未创建

如果我用org.lwjgl.OpenGL.Display.create()创建一个OpenGL“Display”,那么我会得到一个新窗口


那么,如何在不创建新窗口的情况下访问键盘呢?

由于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;}

}

好吧,如果有人关心的话,它是这样的:“glcanvas=newglcanvas(…);glcanvas.addKeyListener(newKeyListener(){…})”;“我就是这么做的,正如我在评论中已经说过的。不过还是谢谢你。