Cómo utilizar las expresiones lambda para manejar eventos en java

En Java, se puede usar expresiones lambda para simplificar clases que implementan las interfaces que tienen sólo un método - es decir, las interfaces que califican como interfaces funcionales. los ActionListener Interface es una interfaz de este tipo: Tiene sólo un método, llamado Acción realizada.

Video: Expresión Lambda en Java #1

Cuando se utiliza una expresión lambda, que no tiene que poner en práctica de manera explícita la ActionListener interfaz. En su lugar, puede utilizar código como el siguiente para añadir un detector de eventos:

button1.addActionListener (e -gt; Button1Click ()) -

A continuación, el método Button1Click se llama cuando el usuario hace clic botón 1.

Echa un vistazo a esta versión de la Haz click en mi programa que utiliza una expresión lambda para controlar el evento de clic de botón.

javax.swing importación * -.. java.awt.event importación * - ClickMeLambdaextends clase pública JFrame {void main (String [] args) {public static nueva ClickMeLambda () -} JButton privado botón 1-ClickMeLambda pública () {this.setSize (300,150) -this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE) -this.setTitle ("Estoy escuchando") -JPanel panel1 = new JPanel () - button1 = new JButton ("¡Haz click en mi!") -button1.addActionListener (e -gt; Button1Click ()) -panel1.add (botón 1) -this.add (panel1) -this.setVisible (verdadero) -} private int clickCount = 0-public void Button1Click () {++ clickCount -Si (== clickCount 1) button1.setText ("He hecho click!") -elsebutton1.setText ("He hecho click "+ + ClickCount " ¡veces!") -}}

Echa un vistazo a las características directamente relacionadas con el uso de la expresión lambda:

Video: Entrenamiento acelerado de C#: Delegados, Expresiones Lambda y Eventos

 button1.addActionListener (e -gt; Button1Click ()) -

Esta instrucción utiliza una expresión Lambda añadir un detector de acción para manejar pulsaciones de botón. La expresión Lambda simplemente llama al método Button1Click cada vez que el usuario hace clic en el botón.

 private int clickCount = 0-

los clickCount variable se declara como un campo de clase.

Video: Expresiones Lambda

 Button1Click public void ()

los Button1Click método se llama cuando el usuario hace clic en el botón. Este método cambia el texto que se muestra en la etiqueta del botón.

Video: Curso Java 8 Expresiones Lambda - Programación Funcional con Java

Tenga en cuenta que podría haber eliminado la Button1Click método por completo, y en su lugar incluye su código directamente en la expresión lambda, así:

 button1.addActionListener (e -gt; {clickCount ++ - si (clickCount == 1) button1.setText ("He hecho click!") -elsebutton1.setText ("He hecho click "+ + ClickCount " ¡veces!") -}) -

Sin embargo, este tipo de codificación puede convertirse rápidamente en poco manejable. Así que, por regla general, incluir el trabajo real realizado por un controlador de eventos en un método separado que se llama a través de una expresión Lambda cuando el controlador de eventos está configurado.

Artículos Relacionados