Wenn Sie die Schnittstelle entworfen haben, müssen Sie den Komponenten immer entsprechende Ausführungsaktionen hinzufügen. In JAVA gibt es einen entsprechenden Zeitverarbeitungsmechanismus, der als „Listener“ bezeichnet wird. Dabei ist „Listener“ eine Schnittstelle, die entsprechende Ausführungsfunktionen enthält. Sie müssen die Methodenfunktionen selbst implementieren und sie dann bei der Komponente „registrieren“. In einfachen Worten: Meine Mutter hat mich gebeten, Sojasauce zu kaufen , und es ist ihr egal, ich würde ein paar Tage lang durch die Straßen laufen, mit dem Chef verhandeln und nach Hause kommen. Das Endergebnis, das meine Mutter braucht, ist, dass ich ihr die Sojasauce liefern kann Ich bin der „Zuhörer“ im Inneren, der die Anweisungen meiner Mutter akzeptiert spiegelt die Trennung von Implementierung und Schnittstelle in JAVA wider.
Zu den Komponentenereignissen in JAVA gehören ActionEvent, KeyEvent, FocusEvent, ComponentEvent, MouseEvent, AdjustmentEvent usw. Jede Komponente unterstützt alle oder einen Teil der Ereignisse. Das entsprechende Ereignis verfügt über einen entsprechenden Listener, um das Auftreten des Ereignisses zu überwachen und die Schnittstellenmethode bzw. das Programm zu implementieren Was das Mitglied tun muss, ist, ein Ereignisklassenobjekt zu erstellen, die darin enthaltenen Funktionen zu implementieren und es dann bei der entsprechenden Komponente zu registrieren. Hier ist eine Codedemonstration:
Kopieren Sie den Codecode wie folgt:
import javax.swing.*;
java.awt.* importieren;
import java.awt.event.*;
öffentliche Klasse ButtonDemo {
privateJFrame
frame=new JFrame("ButtonDemo");
privateJButton
b1 = neuer JButton("Button 1"),
b2 = neuer JButton("Button 2");
privateJTextField
txt = neues JTextField(10);
//Hier ist eine anonyme Klasse, die zum Überwachen von Schaltflächen verwendet wird.
privater ActionListener bl = new ActionListener() {
//Implementieren Sie die abstrakte Funktion in der Listening-Klasse
public void actionPerformed(ActionEvent e) {
Stringname = ((JButton)e.getSource()).getText();
txt.setText(name);
}
};
public ButtonDemo () {
//Registrieren Sie das Abhörobjekt für die beiden Tasten
b1.addActionListener(bl);
b2.addActionListener(bl);
frame.setLayout(new FlowLayout());
frame.add(b1);
frame.add(b2);
frame.add(txt);
frame.setVisible(true);
frame.setSize(200,150);
}
public static void main(String[] args) {
neues ButtonDemo ();
}
}
Wenn die Abhörschnittstelle mehr als eine Funktion enthält und ich nur eine der Funktionen implementieren möchte, ist es offensichtlich, dass das Programm nicht ausgeführt werden kann, da alle Funktionen in der Schnittstelle implementiert werden müssen, bevor das Programm kompiliert werden kann kann rennen. Aufstehen, was sollen wir tun? Haha, offensichtlich haben die JAVA-Sprachdesigner dies berücksichtigt und stellen daher einen Typ namens „Adapter“ bereit, der alle Funktionen in der Schnittstelle standardmäßig implementiert, die Klasse „Adapter“ erbt und die Funktion, an der Sie interessiert sind, überschreibt. Das ist es:
Kopieren Sie den Codecode wie folgt:
Klasse MyMouseListener erweitert MouseAdapter{
public void mouseClicked(MouseEvent e){
//Realisiere die Aktion, wenn mit der Maus geklickt wird
}
}