Du kan lägga till en händelse till en komponent i designvyn eller vyn Java-bönor i den visuella redigeraren för Java.
När du lägger till en händelse, och det finns en befintlig lyssnare som kan användas, läggs återanropsmetoden till den. I annat fall skapas en ny lyssnare. För att en befintlig lyssnare ska användas måste den vara en anonym innerklass i JavaBean som implementerar lyssnargränssnittet. Den måste ha en tom metodtextdel för återanropsmetoden eller utöka adapterklassen och inte ha någon befintlig metod för det händelseåteranrop som läggs till. För en egenskap återanvänds en befintlig PropertyChangeListener om den läggs till JavaBean med enkelargumentsmetoden addPropertyChange(PropertyChangeListener listener). Om den inte redan har en kod läggs bearbetning av egenskapen till.
Om det inte finns någon befintlig kandidatlyssnare där återanropsmetoden kan läggas till skapas en ny lyssnare. Den blir en anonym inre klass och om en adapterklass har definierats för händelsen utökar lyssnaren den. I annat fall implementeras lyssnargränssnittet. När händelsen har lagts till skapas en styckemetod med en //TODO-kommentar. Styckemetoden visar vilken källkod som körs när händelsen inträffar och du bör då ändra den för att den nödvändiga funktionen ska aktiveras. //TODO-kommentaren visas i fönstret Uppgifter som en flagga för ofullständiga metoder. Du kan då hitta dem senare och ta bort //TODO-kommentaren när återanropslogiken har skrivits.
I det föregående exemplet finns redan windowOpened-metoden. Om det är en lyssnare som utökar adaptern återanvänds lyssnaren eftersom den inte redan har en windowClosed-metod . Metoden windowClosed(WindowEvent e) läggs till och det metodstycke och den //TODO-kommentar som lagts till visas här:
this.addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosed(java.awt.event.WindowEvent e) { System.out.println("windowClosed()"); // TODO Auto-generated stub windowClosed() } public void windowOpened(java.awt.event.WindowEvent e) { callExistingWindowOpenedLogic(); } });
I expertläge går det att lägga till händelser till JavaBean, vilket visades tidigare, men det går även att lägga till en lyssnare i Java-bönträdet. I händelsemenyn visas alla händelseåteranropsmetoder för lyssnaren och de som redan används avaktiveras.
I snabbmenyn för PropertyChangeListener visas alla bundna egenskaper för JavaBean. Om några redan används av PropertyChangeListener avaktiveras de.
En lyssnare som läggs till med en enkelargumentsmetod har en if-sats som kontrollerar namnet på egenskapen innan logiken för varje egenskapsåteranrop bearbetas, vilket visas i följande kod:
javaBean.addPropertyChangeListener(new java.beans.PropertyChangeListener() { public void propertyChange(java.beans.PropertyChangeEvent e) { if ((e.getPropertyName().equals("font"))) { System.out.println("propertyChange(font)"); } } });
Det gör det möjligt att använda en PropertyChangeListener som lagts till med en enkelargumentsmetod för fler än en egenskap (genom att använda flera if{}-block) och för varje nytt egenskapsåteranrop som läggs till läggs ett nytt if{}-block till.
Om propertyChangeListener läggs till JavaBean med hjälp av tvåargumentsmetoden addPropertyChangeListener(String propertyName, PropertyChangeListener listener) är den specifik för en viss egenskap och kan inte återanvändas för någon annan egenskap. I det här fallet avaktiveras alla underordnade objekt i händelseundermenyn.