0

我正在尝试学习如何使用 JoGL,出于某种原因,尽管导入了所有这些,但我还是遇到了这个错误:

导入 javax.media.opengl.*;
导入 javax.media.opengl.glu.*;
导入 com.sun.opengl.util.*;
导入 com.sun.opengl.util.j2d.*;
公共无效显示(javax.media.opengl.GLDrawable gLDrawable)
    {
      最终 GL gl = gLDrawable.getGL();
    }

也不

公共无效显示(GLDrawable gLDrawable)
    {
      最终 GL gl = gLDrawable.getGL();
    }

工作。

我该如何解决?

(编辑:将下一个问题移至此处...如果您得到的答案发生变化,您可以编辑您的问题或提出新问题)

好的,这适用于 getGL(),但现在我仍然遇到“找不到符号方法 getGL U ()”的问题

public void reshape(GLAutoDrawable gLDrawable, int x, int y, int width, int height)
{
  final GL gl = gLDrawable.getGL();
  final GLU glu = gLDrawable.getGLU();
}
4

3 回答 3

2

这是因为 GLDrawable 实际上没有这样的方法 - 请参见此处

这是一个由 GLCanvas 和 GLJPanel 实现的接口,它们都有这样的方法。

我认为你需要做的是传入一个 GLAutoDrawable 并使用它的 getGL 方法。见这里

这篇维基百科文章有一些示例源,显示了它是如何完成的。

在回答您询问为什么final GLU glu = gLDrawable.getGLU();不起作用的进一步查询时,您可能正在使用 API 的最新 JSR-231 版本,但您自己的代码基于较旧的源代码示例。

在该规范之前,您曾经从以下位置获取 GLU:

final GLU glu = glAutoDrawable.getGLU();

有了它,您现在只需使用:

final GLU glu = new GLU();

有关该特定对象的详细信息,请参见此处

于 2009-03-06T01:46:01.090 回答
0

好的,这适用于 getGL(),但现在我仍然遇到“找不到符号方法 getGL U ()”的问题

public void reshape(GLAutoDrawable gLDrawable, int x, int y, int width, int height)
    {
      最终 GL gl = gLDrawable.getGL();
      最终 GLU glu = gLDrawable.getGLU();
    }

于 2009-03-06T02:00:40.040 回答
0

看起来,根据您使用的 API 版本,getGLU 方法不存在。您可以通过查看(希望)与您下载的版本一起提供的 javadoc 来了解存在哪些方法。

您使用的是什么版本(指向您下载位置的链接会很棒)。

于 2009-03-06T02:30:27.817 回答