Что не так с этим использованием EventQueue.invokeLater? - PullRequest
0 голосов
/ 07 июня 2018

Итак, я пытался выяснить, как работает эта игра-змея:

http://zetcode.com/tutorials/javagamestutorial/snake/

Когда я скопировал код в компилятор, я получил много ошибок в этом одном блоке кода:

public static void main(String[] args) {

     EventQueue.invokeLater(() -> {
         JFrame ex = new Snake();
         ex.setVisible(true);
     });
  }
}

Вот ошибки: (Строка 27 - строка EventQueue.invokeLater)

Error: illegal start of expression (Line 27)
Error: illegal start of expression (Line 27)
Error: illegal start of expression (Line 27)
Error: ';' expected (Line 27)
Error: illegal start of type (Line 30)
Error: class, interface, or enum expected (Line 32)

1 Ответ

0 голосов
/ 07 июня 2018

Для использования Lambdas необходимо иметь как минимум Java 8 (как в этом примере).

Для Java 7 вам придется прибегнуть к использованию Runnable вместо Lambda

EventQueue.invokeLater(new Runnable() {
    public void run() {
      JFrame ex = new Snake();
      ex.setVisible(true);
    }
});
...