Duvidas com expressões lambdas

Lambda, lambda, lambda. É o seguinte para criarmos um JButton com evento de click seria assim:

JButton btn = new JButton(“Click”);
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.prinln(“Você clicou!”);
}
});

Agora para fazer com expressão lambda é assim:

JButton btn = new JButton(“Click”);
btn.addActionListener((event) -> System.out.prinln(“Você clicou!”));

Bom, minha duvida é, como a expressão lambda sabe que eu quero acessar o evento actionPerformed do JButton e imprimir na tela “Você clicou!” ao inves da expressão lambda acessar outro evento do JButton.

A expressão lambda não está “acessando evento” nenhum, e sim criando um bloco de código independente e que imprime “Você clicou” na tela.

Entendi, essas lambdas ainda vão me enloquecer.

É tão difícil assim entender o conceito de função?