"не удается найти метод символа getGL ()" (и теперь также getGLU ()) - PullRequest
0 голосов
/ 06 марта 2009

Я пытаюсь научиться использовать JoGL, и по какой-то причине я получаю эту ошибку, несмотря на то, что все это импортировано:

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 U ()"

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

Ответы [ 3 ]

2 голосов
/ 06 марта 2009

Это потому, что GLDrawable на самом деле не не имеет такого метода - см. здесь .

Это интерфейс, который реализован GLCanvas и GLJPanel, оба из которых имеют такой метод.

Я думаю, что вам нужно передать GLAutoDrawable и использовать его метод getGL. Смотри здесь .

Эта статья в Википедии содержит пример источника, который показывает, как это делается.

В ответ на ваш следующий запрос, где вы спрашиваете, почему final GLU glu = gLDrawable.getGLU(); не работает, вы, вероятно, используете последнюю версию API JSR-231, но основываете свой собственный код на более старых примерах исходного кода.

До этой спецификации вы получали GLU от:

final GLU glu = glAutoDrawable.getGLU();

Теперь вы просто используете:

final GLU glu = new GLU();

Подробнее об этом конкретном объекте см. здесь .

0 голосов
/ 06 марта 2009

Похоже, что в зависимости от того, какую версию API вы используете, метод getGLU отсутствует. Вы можете узнать, какие методы существуют, посмотрев на javadoc, который (надеюсь) пришел с версией, которую вы скачали.

Какую версию вы используете (ссылка на то, где вы скачали, было бы здорово).

0 голосов
/ 06 марта 2009

Хорошо, это сработало для 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();
    }

...