Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何避免使用LWJGL表单/文本元素重新设计轮子_Java_Opengl_Awt_Lwjgl_Glfw - Fatal编程技术网

Java 如何避免使用LWJGL表单/文本元素重新设计轮子

Java 如何避免使用LWJGL表单/文本元素重新设计轮子,java,opengl,awt,lwjgl,glfw,Java,Opengl,Awt,Lwjgl,Glfw,我正在用LWJGL学习Java中的OpenGL,并希望使用它来模拟物理模型,因此希望有一组显示和控件,如按钮、滑块、文本标签等。我有在AWT中创建此类东西的经验,因此,在我看来,在AWT窗口中嵌入GLFW窗口似乎是合乎逻辑的,以便只使用openGL上下文来渲染需要渲染的内容。然而,我在网上找到的所有东西似乎都想让我在openGL窗口中创建自己的HUD,而我在其他现有的东西(如JPanel或其他东西)中找不到任何关于嵌入式GLFW的有用信息?我对这门学科还很陌生,所以我希望能指出正确的方向。如果您

我正在用LWJGL学习Java中的OpenGL,并希望使用它来模拟物理模型,因此希望有一组显示和控件,如按钮、滑块、文本标签等。我有在AWT中创建此类东西的经验,因此,在我看来,在AWT窗口中嵌入GLFW窗口似乎是合乎逻辑的,以便只使用openGL上下文来渲染需要渲染的内容。然而,我在网上找到的所有东西似乎都想让我在openGL窗口中创建自己的HUD,而我在其他现有的东西(如JPanel或其他东西)中找不到任何关于嵌入式GLFW的有用信息?我对这门学科还很陌生,所以我希望能指出正确的方向。

如果您正在使用LWJGL3,那么将GUI组件与LWJGL3集成是相当困难的,特别是如果您不想自己编写代码的话。但是,以下是您可以想到的一些解决方案:

使用LWJGL 2仍在维护中,但很旧,可以集成到AWT/Swing组件中,但存在一些问题 使用一个库,例如它在LWJGL 2之间提供了一个兼容层,并将它与LWJGL 2的GUI库一起使用。我认为LWJGL 3没有GUI库,但这很可能已经改变 如果您选择第一个解决方案,您可以在开始之前参考以下问题:

要在java.awt.Canvas中显示LWJGL 2,可以执行以下操作:

try {
    Display.setDisplayMode(new DisplayMode(width, height));
    Display.setParent(canvas);
    Display.create();
} catch (LWJGLException e) {
    e.printStackTrace();
    System.exit(0);
}

您必须将gui渲染成屏幕外图像,然后使用opengl进行渲染,或者只搜索lwjgl gui库。我相信lwjgl只允许您为整个窗口创建opengl上下文。您可能会找到一个库,该库允许您创建一个AWT/Swing控件。我知道你可以用SWT来做,但是SWT很大,你可以找到一个更小的库来做这个