Cómo utilizar expresiones lambda para manejar eventos en java
En Java, puede utilizar expresiones lambda para simplificar clases que implementan las interfaces que tienen sólo un método - es decir, las interfaces que califican las interfaces funcionales. los ActionListener interfaz es una interfaz tal: tiene sólo un método, llamado Acción realizada.
Cuando se utiliza una expresión lambda, usted 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 -> Button1Click ()) -
A continuación, el método Button1Click será llamado cada vez que el usuario hace clic Button1.
Echa un vistazo a esta versión de la Haz click en mi programa que utiliza una expresión lambda para controlar el evento clic de botón.
javax.swing importación. * -. java.awt.event import * - ClickMeLambdaextends clase pública JFrame {main (String [] args) {static void públicos nueva ClickMeLambda () -} JButton privada Button1 pública ClickMeLambda(){this.setSize(300,150)-this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)-this.setTitle("I'm Escuchando ") - JPanel panel1 = new JPanel () - Button1 = new JButton (" Click Me ") - button1.addActionListener (e -> Button1Click ()) -panel1.add (Button1) -this.add (panel1) - this.setVisible (true) -} private int clickCount = 0-public void Button1Click () {clickCount ++ - si (clickCount == 1) button1.setText ("He hecho click!") - elsebutton1.setText ("No estoy conectado he hecho clic "ClickCount + +" tiempos ") -!}}
Echa un vistazo a las características directamente relacionadas con el uso de la expresión Lambda:
button1.addActionListener (e -> Button1Click ()) -
Esta instrucción utiliza una expresión lambda para añadir un detector de acción para manejar clics de botón. La expresión Lambda simplemente llama al método Button1Click cada vez que el usuario hace clic en el botón.
privada int clickCount = 0-
los clickCount variable se declara como un campo de clase.
pública Button1Click void ()
los Button1Click método es llamado cada vez que el usuario hace clic en el botón. Este método cambia el texto que se muestra en la etiqueta del botón.
Tenga en cuenta que usted podría haber eliminado el Button1Click método por completo, y en su lugar incluye su código directamente en la expresión lambda, así:
button1.addActionListener (e -> {clickCount ++ - si (clickCount == 1) button1.setText ("He hecho click!") - elsebutton1.setText ("He hecho click en" + ClickCount + "tiempos!") -}) -
Sin embargo, este tipo de codificación puede convertirse rápidamente difícil de manejar. Así que, por regla general, incluyen 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.