Zdarzenie można dodać do komponentu w widoku projektu lub w widoku komponentów Java Bean edytora Visual Editor for Java.
Jeśli dodawane jest zdarzenie i istnieje funkcja nasłuchiwania, która może zostać użyta, to metoda wywołania zwrotnego jest do niej dodawana. W przeciwnym razie jest tworzona nowa funkcja nasłuchiwania. Aby została użyta istniejąca funkcja nasłuchiwania, musi ona być anonimową klasą wewnętrzną komponentu Java Bean, który implementuje interfejs nasłuchiwania. Musi mieć pustą treść metody dla metody wywołania zwrotnego albo rozszerzać klasę adaptera i nie mieć dodanej istniejącej metody dla wywołania zwrotnego zdarzenia. W przypadku właściwości istniejąca funkcja nasłuchiwania PropertyChangeListener zostanie ponownie użyta, jeśli zostanie dodana do komponentu Java Bean przy użyciu metody jednoargumentowej addPropertyChange(PropertyChangeListener listener). Jeśli funkcja nie ma jeszcze kodu, zostanie dodane przetwarzanie właściwości.
Jeśli nie istnieje potencjalna funkcja nasłuchiwania, do której metoda wywołania zwrotnego może zostać dodana, jest tworzona nowa funkcja nasłuchiwania. Jest to anonimowa klasa wewnętrzna i jeśli dla zdarzenia została zdefiniowana klasa adaptera, to funkcja nasłuchiwania ją rozszerzy. W przeciwnym razie zostanie zaimplementowany interfejs funkcji nasłuchiwania. Po dodaniu zdarzenia jest tworzona metoda szkieletowa z komentarzem //TODO. Metoda szkieletowa jest wskaźnikiem kodu źródłowego, który zostanie wykonany w chwili wystąpienia zdarzenia. Należy zmienić ten kod tak, aby były wykonywane odpowiednie działania. Komentarz //TODO jest wyświetlany w oknie czynności, oznaczając niepełne metody. Dzięki temu można je odnaleźć i usunąć komentarz //TODO po utworzeniu logiki wywołania zwrotnego.
W poprzednim przykładzie metoda windowOpened już istnieje. Jeśli jest to funkcja nasłuchiwania, która rozszerza adapter, to zostanie ponownie użyta, ponieważ jeszcze nie ma metody windowClosed. W poniższym przykładzie są dodawane: metoda windowClosed(WindowEvent e), szkielet metody i komentarz //TODO:
this.addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosed(java.awt.event.WindowEvent e) { System.out.println("windowClosed()"); // TODO Automatycznie generowany szkielet windowClosed() } public void windowOpened(java.awt.event.WindowEvent e) { callExistingWindowOpenedLogic(); } });
W trybie zaawansowanym zdarzenia mogą być dodawane do komponentu Java Bean, jak pokazano wyżej; mogą być również dodawane do funkcji nasłuchiwania w drzewie komponentów Java Bean. Menu Zdarzenia zawiera wszystkie metody wywołań zwrotnych dla funkcji nasłuchiwania. Metody już używane są niedostępne.
W przypadku funkcji nasłuchiwania PropertyChangeListener menu rozwijane zawiera wszystkie powiązane właściwości dla komponentu Java Bean. Właściwości już używane przez funkcję PropertyChangeListener są niedostępne.
Funkcja nasłuchiwania dodana przy użyciu metody jednoargumentowej ma instrukcję IF sprawdzającą nazwę właściwości przed przetworzeniem logiki dla każdego wywołania zwrotnego właściwości, jak pokazano w poniższym kodzie:
javaBean.addPropertyChangeListener(new java.beans.PropertyChangeListener() { public void propertyChange(java.beans.PropertyChangeEvent e) { if ((e.getPropertyName().equals("font"))) { System.out.println("propertyChange(font)"); } } });
Ten kod umożliwia używanie funkcji nasłuchiwania PropertyChangeListener dodanej przy użyciu metody jednoargumentowej dla więcej niż jednej właściwości (przez użycie wielu bloków if{}). Wraz z kolejnymi wywołaniami zwrotnymi właściwości są dodawane nowe bloki if{}.
Jeśli funkcja nasłuchiwania propertyChangeListener zostanie dodana do komponentu Java Bean przy użyciu metody dwuargumentowej addPropertyChangeListener(String propertyName, PropertyChangeListener listener), to będzie ona charakterystyczna dla określonej właściwości i nie będzie mogła zostać ponownie użyta dla innej właściwości. W takim przypadku wszystkie elementy podrzędne menu Zdarzenia będą niedostępne.