2013-09-11 2 views
4

Java, похоже, не может найти мой конструктор, я понятия не имею, что не так. Есть ли проблема с запутанностью InterruptedException? Любая помощь будет оценена, спасибо!Java не распознает мой конструктор

package gameloop; 

    import javax.swing.*; 

    public class GameLoop extends JFrame { 
     private boolean isRunning; 
     public int drawx = 0; 
     public int drawy = 0; 

     public void GameLoop() throws InterruptedException{ 
      setSize(700, 700); 
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      setLocationRelativeTo(null); 
      setVisible(true); 

      while(isRunning){ 
       doGameUpdate(); 
       render(); 
       Thread.sleep(1); 
       if (isRunning){ 
        GameLoop(); 
       } 
      } 
     } 

     private void doGameUpdate() { 
      GameUpdate GU = new GameUpdate(); 
     } 

     private void render() { 
      Draw dr = new Draw(); 
     } 

     public static void main(String[] args) { 
      GameLoop GL = new GameLoop(); 
     } 
    } 
+6

Удалите 'void'. Конструктор не имеет типа возврата. –

+0

Вы также должны переместить цикл update/render из конструктора и в его собственную функцию, а также удалить бесконечную рекурсию из цикла update/render. –

ответ

6

Конструктор назван так же, как и его класс, и не имеет типа возврата. Если вы указали тип возврата, даже void, вы создаете метод под названием GameLoop. То, что вы ищете

public GameLoop() 

вместо

public void GameLoop() 
3

Вам нужно public GameLoop() конструкторы не имеют возвращаемые типы

+0

Спасибо за начальную помощь! У меня появилось окно, но теперь я получаю новые ошибки. В моих классах Draw и Update обе строки «public class draw extends GameLoop» и «Открытый класс GameUpdate». – user2766847

+0

лучше всего создать новый вопрос –

4

Это не конструктор - это:

public GameLoop() throws InterruptedException 

Конструктор не может иметь тип возврата (void в вашем коде), если вы добавите его, Java будет интерпретировать его как обычный метод - даже если он называется точно так же, как класс!

3

У вас есть тип возврата, поэтому он рассматривается как любой другой метод.

Смежные вопросы