2009-03-06 51 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來找出存在哪些方法。

你使用的是什麼版本(你下載它的鏈接會很棒)。