0

私は現在Macを使用しており、ライブラリが機能することを確認するために単純なLWJGLテストプログラムを作成していました...しかし、ディスプレイの閉じた要求状態を取得しようとすると、エラーがスローされます...

現在MacOSX10.7.5を使用しており、LWJGL 2.8.5を使用しており、最新のJava(1.7.0_13)を実行しています。これが私によるエラーである場合は、遠慮なく指摘してください。

エラー:

JavaVM WARNING: JAWT_GetAWT must be called after loading a JVM
Fatal error: Unable to create window.
org.lwjgl.LWJGLException: Could not get the JAWT interface
Exception in thread "main" java.lang.IllegalStateException: Cannot determine close requested state of uncreated window
    at org.lwjgl.opengl.Display.isCloseRequested(Display.java:546)
    at lwjgltest.LWJGLTest.start(LWJGLTest.java:26)
    at lwjgltest.LWJGLTest.main(LWJGLTest.java:13)
Java Result: 1
BUILD SUCCESSFUL (total time: 2 seconds)

コード:

package lwjgltest;

import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;

/**
 *
 * @author DealerNextDoor
 */
public class LWJGLTest {
    public static void main(String[] args) {
        new LWJGLTest().start(); // Line 13
    }

    public void start() {
        try {
            Display.setDisplayMode(new DisplayMode(640, 480));
            Display.setTitle("LWJGL Test");
            Display.create();
        } catch (LWJGLException e) {
            System.err.println("Fatal error: Unable to create window.");
            System.err.println(e);
        }

        while (!Display.isCloseRequested()) { // Line 26

            Display.update();
            Display.sync(60);
        }

        Display.destroy();
    }
}
4

3 に答える 3

0

エラーを見ると、ウィンドウが作成されていないことがわかります。Fatal error: Unable to create window.

その結果、メソッドを使用できなくなりますisCloseRequested()

なぜそれが作成されないのかについての情報がここにあると思います

于 2013-02-10T20:51:17.150 に答える
0

Javaを1.6にダウングレードすると役立つはずです。

于 2013-02-10T20:54:32.777 に答える
0

メソッド内ではなくクラスコンストラクターに移動Display.create();すると、「作成されていないウィンドウの閉じ要求された状態を判別できません」というエラーが消えました。

public Core() { // Main class constructor

    try {
        LibraryLoader.loadNativeLibraries();
    } catch (Exception e) {
        e.printStackTrace();
        System.err.println("Error Loading Natives!");
    }

    Scanner in = new Scanner(System.in);
    startTime = System.currentTimeMillis();

    try {
        Display.setDisplayMode(new DisplayMode(WIDTH, HEIGHT));
        Display.create();
        input = new InputHandler();
        Display.setTitle(TITLE);
    } catch (LWJGLException e) {
        e.printStackTrace();
        System.exit(1);
        cleanUp();

    }
    initGL();
    mainLoop();

}
于 2017-03-10T22:02:58.100 に答える