Wie Verwenden von Lambda-Ausdrücke Ereignisse in Java Griff

In Java können Sie Lambda-Ausdrücke verwenden Klassen vereinfachen die Schnittstellen implementieren, die nur eine Methode haben - das heißt, Schnittstellen, die als funktionale Schnittstellen zu qualifizieren. Das Action Schnittstelle ist eine solche Schnittstelle: Es hat nur eine Methode, mit dem Namen Handlung ausgeführt.

Wenn Sie einen Lambda-Ausdruck zu verwenden, müssen Sie nicht auf die explizit implementieren Action Schnittstelle. Stattdessen können Sie Code wie den folgenden verwenden, um ein Ereignis-Listener hinzuzufügen:

button1.addActionListener (e -> Button1Click ()) -

Dann wird das Verfahren Button1Click werden, wenn der Benutzer klickt aufgerufen button1.

Schauen Sie sich diese Version des Klick mich Programm, das einen Lambda-Ausdruck verwendet die Schaltfläche Click-Ereignis zu behandeln.

import javax.swing. * -. Import java.awt.event * - public class ClickMeLambdaextends JFrame {public static void main (String [] args) {new ClickMeLambda () -} private JButton button1 öffentlichen ClickMeLambda(){this.setSize(300,150)-this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)-this.setTitle("I'm Zuhören ") - JPanel panel1 = new JPanel () - button1 = new JButton (" Klick mich! ") - Button1.addActionListener (e -> Button1Click ()) -panel1.add (button1) -this.add (panel1) - this.setVisible (true) -} private int click = 0-public void Button1Click () {click ++ - if (click == 1) button1.setText ( "ich habe angeklickt!") - elsebutton1.setText ( "ich bin ve geklickt wurde "+ click +" mal! ") -}}

Überprüfen Sie die Funktionen direkt im Zusammenhang mit aus der Verwendung der Lambda-Ausdruck:

 button1.addActionListener (e -> Button1Click ()) -

Diese Aussage wird ein Lambda-Ausdruck eine Aktion Hörer hinzufügen Tastenklicks zu behandeln. Der Lambda-Ausdruck ruft einfach die Methode Button1Click wenn der Benutzer auf die Schaltfläche klickt.

 private int click = 0-

Das click Variable wird als Klassenfeld erklärt.

 public void Button1Click ()

Das Button1Click Methode wird aufgerufen, wenn der Benutzer auf die Schaltfläche klickt. Diese Methode ändert den Text, der auf die Beschriftung der Schaltfläche angezeigt wird.

Beachten Sie, dass Sie die beseitigt haben könnte Button1Click Verfahren zusammen, und stattdessen in seinen Code direkt in den Lambda-Ausdruck, wie folgt aus:

 button1.addActionListener (e -> {click ++ - if (click == 1) button1.setText ( "Ich habe angeklickt!") - elsebutton1.setText ( "Ich habe geklickt wurde" + click + "mal!") -}) -

Allerdings kann diese Art der Codierung schnell unhandlich werden. Also, in der Regel sind die von einem Event-Handler in einem separaten Verfahren tatsächlich geleisteten Arbeit, die über einen Lambda-Ausdruck genannt wird, wenn der Event-Handler eingerichtet ist.

Menü