Java LWJGL+Swing关闭窗口

Java LWJGL+Swing关闭窗口,java,swing,netbeans,lwjgl,Java,Swing,Netbeans,Lwjgl,我在JFrame中使用awt画布来呈现我的LWJGL应用程序。当我在Netbeans中运行应用程序时,我可以使用 destroyOpenGL(); 方法,而不必使用 JFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 以下是我的OpenGL方法的代码: private void destroyOpenGL() { obj.destroy(); obj2.destroy(); Display.destroy();

我在JFrame中使用awt画布来呈现我的LWJGL应用程序。当我在Netbeans中运行应用程序时,我可以使用

destroyOpenGL();
方法,而不必使用

JFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
以下是我的OpenGL方法的代码:

private void destroyOpenGL() {
    obj.destroy();
    obj2.destroy();
    Display.destroy();
    frame.dispose();
    System.exit(0);
}
破坏;破坏;用于销毁正在渲染的两个VBO

当我清理并将应用程序构建到一个.jar文件中并运行它时,一切正常,但当我尝试关闭应用程序时,即使显示器正确关闭,我也会收到一条消息,即java已从windows停止工作

当我添加JFrame.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;,我在Netbeans中得到了这样的信息:

Exception in thread "main" java.lang.IllegalStateException: Shutdown in progress
当我清理和构建,然后运行罐子时,它会很好地关闭


我不明白为什么会发生这种情况,也不确定是否有解决方案。

在何处添加JFrame.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;?它是在我定义frame变量之后添加的frame=新的JFrame;'它在“initUI;”中调用方法,该方法在初始化OpenGL之前发生@那个人戴着帽子