In der Entwurfsansicht oder der Java-Beans-Ansicht können Sie einer Komponente ein Ereignis hinzufügen.
Eine Listener-Funktion, die unter Verwendung der zwei Argumente enthaltenden Methode hinzugefügt wird, ist spezifisch für eine bestimmte Eigenschaft, so dass sie nicht für eine andere Eigenschaft verwendet werden kann. Eine Listener-Funktion, die mit einer Einzelargumentmethode hinzugefügt wurde, hat eine if-Anweisung, die den Namen der Eigenschaft prüft, bevor, wie im folgenden Code gezeigt, die Logik für jedes Eigenschafts-Callback verarbeitet wird:
javaBean.addPropertyChangeListener(new java.beans.PropertyChangeListener() { Â Â Â public void propertyChange(java.beans.PropertyChangeEvent e) { Â Â Â Â Â Â Â if ((e.getPropertyName().equals("font"))) { Â Â Â Â Â Â Â Â Â Â Â System.out.println("propertyChange(font)");Â Â Â Â Â Â Â } Â Â Â } });
Dadurch wird ermöglicht, dass eine Funktion 'PropertyChangeListener' (Listener-Funktion zur Eigenschaftsänderung), die mit einer Einzelargumentmethode hinzugefügt wurde, für mehr als eine Eigenschaft verwendet wird (da sie mehrere 'if{}'-Blöcke hat, die verwendet werden).
Wenn Sie ein Ereignis hinzufügen, wird diesem, wenn es eine vorhandene Listener-Funktion gibt, die verwendet werden kann, die Callback-Methode hinzugefügt. Andernfalls wird eine neue Listener-Funktion erstellt. Bei einer zu verwendenden vorhandenen Listener-Funktion muss es eine anonyme untergeordnete Klasse in der Java-Bean geben, die die Listener-Funktionsschnittstelle implementiert. Sie muss einen leeren Methodenhauptteil für die Callback-Methode haben oder die Adapterklasse erweitern und sie darf keine vorhandene Methode für das hinzugefügte Ereignis-Callback haben. Für eine Eigenschaft wird eine vorhandene 'PropertyChangeListener' erneut verwendet, wenn sie der Java-Bean mit der Einzelargumentmethode addPropertyChange(PropertyChangeListener listener) hinzugefügt wird. Wenn sie nicht bereits über einen Code verfügt, wird die Verarbeitung der Eigenschaft hinzugefügt.
Wenn es keine mögliche vorhandene Listener-Funktion gibt, der die Callback-Methode hinzugefügt werden kann, wird eine neue Listener-Funktion erstellt. Dabei handelt es sich um eine anonyme untergeordnete Klasse, die, wenn eine Adapterklasse für das Ereignis definiert worden ist, durch die Listener-Funktion erweitert wird. Andernfalls wird sie die Listener-Funktionsschnittstelle implementieren. Nachdem das Ereignis hinzugefügt ist, wird eine Stub-Methode mit einem //TODO-Kommentar erstellt. Die Stub-Methode ist Anzeiger für den Quellcode, der bei Eintritt des Ereignisses ausgeführt wird, und Sie sollten diesen dann so ändern, dass das von Ihnen gewünschte Verhalten ausgeführt wird. Der //TODO-Kommentar erscheint im Tasks-Fenster und ermöglicht Ihnen das Markieren unvollständiger Methoden. Dies geschieht, damit Sie diese später auffinden und den //TODO-Kommentar löschen können, wenn die Callback-Logik geschrieben worden ist.
In dem obigen Beispiel ist die Methode 'windowOpened' bereits vorhanden. Wenn dies eine Listener-Funktion ist, die dem Adapter erweitert, wird dieselbe Listener-Funktion erneut verwendet, da sie nicht bereits eine Methode 'windowClosed' hat. Die Methode windowClosed(WindowEvent e) wird hinzugefügt und der Methoden-Stub und der //TODO-Kommentar werden, wie im Folgenden gezeigt, hinzugefügt:
this.addWindowListener(new java.awt.event.WindowAdapter() { Â Â Â public void windowClosed(java.awt.event.WindowEvent e) { Â Â Â Â Â Â Â System.out.println("windowClosed()"); // TODO Automatisch generierter Stub windowClosed() Â Â Â } Â Â Â public void windowOpened(java.awt.event.WindowEvent e) { Â Â Â Â Â Â Â callExistingWindowOpenedLogic(); Â Â Â } });
Im Expertenmodus können, wie oben gezeigt, die Ereignisse noch der Java-Bean hinzugefügt werden, aber sie können auch einer Listener-Funktion in der Baumstruktur der Java-Beans hinzugefügt werden. Das Ereignismenü zeigt alle Callback-Methoden des Ereignisses für die Listener-Funktion, und alle bereits verwendeten sind deaktiviert.
Bei einer 'PropertyChangeListener'-Funktion zeigt das Kontextmenü alle damit verbundenen Eigenschaften der Java-Bean. Wenn es einige gibt, die bereits durch die Funktion 'PropertyChangeListener' verwendet werden, werden diese deaktiviert.
Eine Listener-Funktion, die mit einer Einzelargumentmethode hinzugefügt wurde, hat eine IF-Anweisung, die den Namen der Eigenschaft prüft, bevor, wie im folgenden Code gezeigt, die Logik für jedes Eigenschafts-Callback verarbeitet wird.
javaBean.addPropertyChangeListener(new java.beans.PropertyChangeListener() { Â Â Â public void propertyChange(java.beans.PropertyChangeEvent e) { Â Â Â Â Â Â Â if ((e.getPropertyName().equals("font"))) { Â Â Â Â Â Â Â Â Â Â Â System.out.println("propertyChange(font)");Â Â Â Â Â Â Â } Â Â Â } });
Dadurch wird ermöglicht, dass bei einer Funktion 'PropertyChangeListener', die mit einer Einzelargumentmethode hinzugefügt wurde, um für mehr als eine Eigenschaft verwendet zu werden (da sie mehrere 'if{}'-Blöcke hat, die verwendet werden) und bei Hinzufügung des zweiten und nachfolgenden Eigenschafts-Callbacks, neue 'if{}'-Blöcke hinzugefügt werden.
Wenn die Funktion 'propertyChangeListener' der Java-Bean unter Verwendung der zwei Argumente enthaltenden Methode addPropertyChangeListener(String propertyName, PropertyChangeListener listener) hinzugefügt wurde, so gilt diese spezifisch für eine bestimmte Eigenschaft und kann nicht erneut für eine andere Eigenschaft verwendet werden. In diesem Fall sind alle untergeordneten Elemente im Untermenüfenster des Ereignisses deaktiviert.
Übergeordnetes Thema: Verarbeitung von Ereignissen mit dem Visual Editor
Verwandte Konzepte
Die Java-Beans-Ansicht
Verwandte Tasks
Löschen von Ereignissen aus einer Komponente
Ereignisse für eine Komponente anzeigen
Anzeigen der Quelle für ein Ereignis