使用EventQueue.invokeLater有什么问题?

时间:2018-06-07 17:45:55

标签: java swing eventqueue

所以我试图弄清楚这个蛇游戏的运作方式:

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 :(得分:1)

您需要至少使用Java 8来使用Lambdas(就像您在此示例中所做的那样)。

对于Java 7,您需要求助于使用Runnable而不是Lambda

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