package example;
import java.awt.Event;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.EventListener;
import java.util.function.BinaryOperator;
import javax.swing.JButton;
import javax.swing.JFrame;
public class LambdaExpressions {
public void first_lambda_1(JFrame jFrame)
{
System.out.println("Hello");
JButton jButton = new JButton();
// jButton.addActionListener(new ActionListener() {
//
// @Override
// public void actionPerformed(ActionEvent e) {
// // TODO Auto-generated method stub
// System.out.println("Button click!");
// }
// });
//使用的Lambada表达式
// jButton.addActionListener(event -> System.out.println("Button Click!"));
//变体1
ActionListener oneArgument = event -> System.out.println("Button Click!");
jButton.addActionListener(oneArgument);
jFrame.add(jButton);
}
public void allLambdaForms()
{
Runnable noArguments = ()->System.out.println("Hello,Word!");
/*
*
* 等同于以下代码
* **/
Runnable noRunnable1 = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("Hello,Word!");
}
};
//==============================================
ActionListener oneArgument = event -> System.out.println("Button Click!");
//变体2
Runnable multiSatement = ()->{
System.out.print("Hello ");
System.out.println("Word!");
};
BinaryOperator<Long> add = (x,y)->x+y;
BinaryOperator<Long> add2 = (Long x,Long y)->x+y;
BinaryOperator<Long> add1 = new BinaryOperator<Long>() {
@Override
public Long apply(Long t, Long u) {
// TODO Auto-generated method stub
return t+u;
}
};
add.apply((long)11, (long)12);
// noArguments.run();
multiSatement.run();
}
public void first_lambda_5(JFrame jFrame)
{
JButton jButton = new JButton();
// final String name = getUsername();
String name = getUsername(); //这个name必须被赋值一次 final变量
// name = "Lisi";//如果对name 进行二次赋值就会发生报错
// jButton.addActionListener(new ActionListener() {
//
// @Override
// public void actionPerformed(ActionEvent event) {
// // TODO Auto-generated method stub
// System.out.println("Hi " + name);
// }
// });
jButton.addActionListener((ActionEvent event) -> System.out.println("Hi " + name));
jFrame.add(jButton);
}
private String getUsername() {
// TODO Auto-generated method stub
return "Zhangsan";
}
public static void main(String[] args) {
// new LambdaExpressions().first_lambda_1();
JFrame jFrame = new JFrame();
jFrame.setVisible(true);
jFrame.setSize(200, 200);
// new LambdaExpressions().first_lambda_1(jFrame);
LambdaExpressions lambdaExpressions = new LambdaExpressions();
// lambdaExpressions.allLambdaForms();
// lambdaExpressions.first_lambda_1(jFrame);
lambdaExpressions.first_lambda_5(jFrame);
}
}