Java 在LWJGL上使用键/鼠标侦听器?
我正在制作一个使用LWJGL的java应用程序(不是游戏),我想知道是否有一种方法可以将KeyListener和MouseListener添加到应用程序中 我的设置是我有一个Java 在LWJGL上使用键/鼠标侦听器?,java,lwjgl,Java,Lwjgl,我正在制作一个使用LWJGL的java应用程序(不是游戏),我想知道是否有一种方法可以将KeyListener和MouseListener添加到应用程序中 我的设置是我有一个JFrame和一个Canvas。JFrame有一些JPanel侧栏。我试着将它们添加到JFrame中,结果却让它们在我的边栏上工作。我尝试将它们添加到我的画布中,但只看到它们工作了一次 我知道LWJGL有自己的输入类,但我希望使用监听器,因为当它们发生时,监听器会给我输入 我的问题归结到这一点,是否可以在LWJGL应用程序中
JFrame
和一个Canvas
。JFrame
有一些JPanel
侧栏。我试着将它们添加到JFrame
中,结果却让它们在我的边栏上工作。我尝试将它们添加到我的画布中
,但只看到它们工作了一次
我知道LWJGL有自己的输入类,但我希望使用监听器,因为当它们发生时,监听器会给我输入
我的问题归结到这一点,是否可以在LWJGL应用程序中添加KeyListener等,或者是否有其他方法在事件发生时获取事件?还是我必须自己创建一个线程并监听事件?仅在Windows上使用当前的lwjgl 2.8.2是不可能的 原因是lwjgl的Windows实现破坏了AWT处理事件所需的关键数据结构
我知道这是一个老问题,但对于那些阅读本文并寻找答案的人来说,这里有它(我认为): 您可以创建一个实现
keylister
的类,并将其设置为JFrame
的keylister
如果我没有完全错的话,只要JFrame
处于活动状态,它就会监听按键输入。希望这有帮助
例如:
关键侦听器类:
主要类别:
这就是我创建KeyListeners的方式:
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();
}
}