我正在制作一个使用LWJGL渲染一个Display窗口的程序,它还会监听键盘输入以提示它打开一个swing窗口。问题是,在第一个键盘提示符下,它会成功打开窗口。但是当你关闭它并再次尝试时,似乎LWJGL窗口“粘住”你刚刚按下的键,而是开始打开无限的新Swing窗口......我不知道如何解决这个问题。
以下是一些展示我的问题的代码......
public class Launcher {
public static void main(String[] args){
new Launcher();
}
public Launcher(){
loadGUI();
go();
}
public void go(){
while(!Display.isCloseRequested()){
listen();
glClear(GL_COLOR_BUFFER_BIT);
Display.update();
Display.sync(60);
}
}
private void listen(){
if(Keyboard.isKeyDown(Keyboard.KEY_SPACE)){
System.out.println("fk");
Example e = new Example();
}
}
private void loadGUI(){
try{
Display.setDisplayMode(new DisplayMode(480,480));
Display.setTitle("Example");
Display.create();
}catch(LWJGLException e){
e.printStackTrace();
Display.destroy();
System.exit(1);
}
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, 480, 480, 0, 1, -1);
glMatrixMode(GL_MODELVIEW);
}
private class Example extends JFrame{
public Example(){
add(new JPanel(), BorderLayout.NORTH);
pack();
setResizable(true);
setTitle("Test");
setVisible(true);
}
}
}