我正在使用Eclipse IDE for Java Developers,Kepler Service Release 2版本,并安装了jdk1.8.0作为JRE。
我正在使用《Java全能指南》学习Java SE 8,在编写一个使用Swing的程序时,遇到以下错误:syntax error on token "-", -- expected
这是我的代码:
button1 = new JButton("Click me!");
button1.addActionListener(e -> button1Click() );
panel1.add(button1);
exitButton = new JButton("Exit");
exitButton.addActionListener(e -> exitButtonClick() );
panel1.add(exitButton);
this.add(panel1);
按钮和退出按钮已经被声明为JButtons,我已经导入了javax.swing.*和java.awt.event.*。
我该如何解决这个问题?
e
是什么?它是什么? - Anubian Noobbutton1Click
(例如) 方法接受一个ActionEvent
,然后只需将MyClass::button1Click
传递给该方法即可。 - Boris the Spidere
是Java 8中lambda语法的一部分。在这种情况下,lambda表示我们正在创建一个ActionListener
,其actionPerformed
方法接受名为e
的ActionEvent
参数,然后执行->
右侧的表达式。该表达式可以将e
作为参数引用,但事件监听器通常不需要使用其参数。请参见有关lambda的此教程。 - ajb