2009-03-06 52 views
0

我试图学习如何使用JoGL,并且出于某种原因,我得到了这个错误,尽管所有这些都导入了:”找不到符号方法getGL()“(现在也是getGLU())

 
import javax.media.opengl.*; 
import javax.media.opengl.glu.*; 
import com.sun.opengl.util.*; 
import com.sun.opengl.util.j2d.*; 
 
public void display(javax.media.opengl.GLDrawable gLDrawable) 
    { 
     final GL gl = gLDrawable.getGL(); 
    } 

也不

 
public void display(GLDrawable gLDrawable) 
    { 
     final GL gl = gLDrawable.getGL(); 
    } 

工作。

我该如何解决这个问题?

(编辑:移动的下一个问题了这里......您可以编辑您的问题或提出新的问题,如果事情与你得到的答案更改)

好吧,这对于getGL()的工作,但现在我仍然有问题“找不到符号法getGL ü()”

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

什么是不编译的代码行? – TofuBeer 2009-03-06 01:40:18

+0

@TofuBeer,补充说。 – William 2009-03-06 01:43:31

回答

2

这是因为GLDrawable实际上有这样的方法 - 看here

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

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

This wikipedia article有一些示例源代码显示了它是如何完成的。

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

该规范之前,用来从获得GLU:

final GLU glu = glAutoDrawable.getGLU(); 

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

final GLU glu = new GLU(); 

针对特定对象的详细信息,请参阅here

+0

工作,谢谢。 – William 2009-03-06 01:52:00

0

好了,工作了getGL(),但我现在仍然有问题,“找不到符号法getGL ü()”

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

0

它看起来像,这取决于在什么版本你正在使用的API,getGLU方法不存在。您可以通过查看下载的版本(有希望)附带的javadoc来找出存在哪些方法。

你使用的是什么版本(你下载它的链接会很棒)。