[英]Using Key/MouseListeners on LWJGL?
我正在制作一個使用LWJGL的Java應用程序(不是游戲),我想知道是否可以將KeyListeners和MouseListeners添加到應用程序中?
我的設置是我有一個JFrame
和一個Canvas
。 JFrame
有一些JPanel
欄。 我試圖將它們添加到JFrame
只是為了讓它們在我的側邊欄上工作。 我嘗試將它們添加到“ Canvas
只是為了看到它們工作一次。
我知道LWJGL有它自己的輸入類,但是我希望使用偵聽器,因為這會在發生輸入時為我提供輸入。
我的問題可以歸結為這一點,是否可以向LWJGL應用程序中添加KeyListeners之類,還是有發生事件時獲取事件的另一種方法? 還是我被迫創建一個線程並自己監聽事件?
我知道這是一個古老的問題,但是對於那些閱讀此書並尋找答案的人,這里有(我認為):
您可以創建一個實現KeyListener
的類,並將其設置為JFrame
的KeyListener
。
如果我沒有完全錯,那么只要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事件處理所需的關鍵數據結構。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.