2009-03-06 5 views
0

J'essaie d'apprendre à utiliser JoGL, et pour une raison quelconque, je reçois cette erreur malgré tous ces importés:"ne peut pas trouver la méthode de symbole getGL()" (et maintenant aussi 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(); 
    } 

ni

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

.

Comment résoudre ce problème?

(edit: déplacer la question suivante jusqu'à ici ... vous pouvez modifier votre question ou faire une nouvelle question si les choses changent avec les réponses que vous obtenez)

D'accord, qui a travaillé pour getGL(), mais maintenant, je suis toujours des problèmes avec « ne peut pas trouver la méthode symbole 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(); 
} 
+0

Quelle est la ligne de code qui ne compile pas? – TofuBeer

+0

@TofuBeer, l'a ajouté. – William

Répondre

2

Il est parce que GLDrawable fait ne ont une telle méthode - voir here.

Il s'agit d'une interface implémentée par GLCanvas et GLJPanel, tous deux dotés d'une telle méthode.

Je pense que ce que vous devez faire est de passer dans un GLAutoDrawable et d'utiliser sa méthode getGL. Voir here.

This wikipedia article a une source d'échantillon qui montre comment c'est fait. En réponse à votre autre question où vous demandez pourquoi final GLU glu = gLDrawable.getGLU(); ne fonctionne pas, vous utilisez probablement la dernière version de l'API JSR-231, mais en basant votre propre code sur des exemples de code source plus anciens.

Avant cette spécification, vous avez utilisé pour obtenir le GLU de:

final GLU glu = glAutoDrawable.getGLU(); 

Avec, vous utilisez maintenant juste:

final GLU glu = new GLU(); 

Voir here pour plus de détails sur cet objet particulier.

+0

Ça a marché, merci. – William

+0

Pouvez-vous mettre à jour les liens qu'ils sont tous 404 –

+0

@ m00st, fait, merci pour cela. – paxdiablo

0

D'accord, qui a travaillé pour getGL(), mais maintenant je suis toujours des problèmes avec « ne peut pas trouver la méthode symbole 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(); 
    } 

+0

Il se peut que vous utilisiez une version JSR-231 de l'API et que vous utilisiez du code source plus ancien comme base de votre propre version.Avant cette spécification, vous obteniez le GLU de "GLAutoDrawable.getGLU()". Avec lui, vous utilisez maintenant "GLU final glu = new GLU()". – paxdiablo

+0

Voir http://download.java.net/media/jogl/builds/nightly/javadoc_public/javax/media/opengl/glu/GLU.html – paxdiablo

+0

Et cela devrait vraiment être un commentaire à ma réponse plutôt qu'une réponse en soi mais vous êtes relativement nouveau ici, alors nous allons laisser tomber. :-) – paxdiablo

0

Il ressemble, selon dans quelle version de l'API que vous utilisez, la méthode getGLU n'est pas là. Vous pouvez découvrir quelles méthodes existent en regardant le javadoc qui (avec un peu de chance) est venu avec la version que vous avez téléchargée.

Quelle version utilisez-vous (un lien vers l'endroit où vous l'avez téléchargé serait génial).

Questions connexes