簡體   English   中英

在LWJGL上使用Key / MouseListeners?

[英]Using Key/MouseListeners on LWJGL?

我正在制作一個使用LWJGL的Java應用程序(不是游戲),我想知道是否可以將KeyListeners和MouseListeners添加到應用程序中?

我的設置是我有一個JFrame和一個Canvas JFrame有一些JPanel欄。 我試圖將它們添加到JFrame只是為了讓它們在我的側邊欄上工作。 我嘗試將它們添加到“ Canvas只是為了看到它們工作一次。

我知道LWJGL有它自己的輸入類,但是我希望使用偵聽器,因為這會在發生輸入時為我提供輸入。

我的問題可以歸結為這一點,是否可以向LWJGL應用程序中添加KeyListeners之類,還是有發生事件時獲取事件的另一種方法? 還是我被迫創建一個線程並自己監聽事件?

我知道這是一個古老的問題,但是對於那些閱讀此書並尋找答案的人,這里有(我認為):

您可以創建一個實現KeyListener的類,並將其設置為JFrameKeyListener

如果我沒有完全錯,那么只要JFrame處於活動狀態,它就會偵聽鍵輸入。 希望這可以幫助!

例:

關鍵偵聽器類:

public class MyCustomKeyListener implements KeyListener {
    // Implement your key listening
}

主班:

public class JFrameWithLWJGL extends JFrame {

    // Our key listener
    private MyCustomKeyListener keyListener;

    public JFrameWithLWJGL() {
        // Create the key listener
        keyListener = new MyCustomKeyListener();
        // Set all JFrame properties here
        // Add the key listener to the frame
        add(keyListener);
    }

    public static void main(String[] args) {
        // Create an instance of the application
        new JFrameWithLWJGL();
    }
}

這就是我創建KeyListeners的方式: gist.github.com

僅在Windows上,當前的lwjgl 2.8.2無法做到這一點。

原因是Windows的lwjgl實現掩蓋了AWT事件處理所需的關鍵數據結構。

http://www.java-gaming.org/topics/cannot-add-mouselistener-to-java-awt-canvas-with-lwjgl-on-windows/24650/msg/208505/view.html#msg208505

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM