Lägga till händelser till en komponent

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.

Så här lägger du till en händelse till en komponent:
  1. Högerklicka på komponenten i vyn Java-bönor eller i designvyn.
  2. I snabbmenyn klickar du på Händelser. I snabbmenyn visas förinställda händelser för komponenten. Gör något av följande:
    • Klicka på någon av de förinställda händelserna för komponenten. Händelsen läggs till i komponenten. För till exempel en JFrame är de förinställda händelserna windowClosed och windowOpened.
    • Klicka på Lägg till händelser så öppnas fönstret Lägg till händelser.
  3. När du öppnar fönstret Lägg till händelser visas en lista med kategoriserade händelser som du kan välja mellan. Välj den händelse du vill lägga till och klicka på Slutför.
    • I dialogrutan Lägg till händelse visas alla tillgängliga händelser för komponenten i trädet. I trädet är händelselyssnarna den första nivån och under varje lyssnarpost visas de möjliga återanrop som händelsen kan orsaka.
      Dialogrutan Lägg till händelse
    • Du kan använda dialogrutan till att ange om du vill skapa en ny lyssnare eller använda en befintlig. När dialogrutan öppnas analyseras de befintliga lyssnarna och de som anses kunna återanvändas markeras med en annan ikon. För befintliga lyssnare som utökar en adapterklass används ikonen klass för befintliga händelser. I annat fall används ikonen befintlig händelse. Inom själva lyssnaren markeras befintliga händelser med en grön pil grön pil och ej tillgängliga händelser visas med en ofullständig pil ej händelse
    • Du kan ange om du vill använda den befintliga lyssnaren eller skapa en ny. När en ny lyssnare skapas kan du välja om du vill att den ska utöka adapterklassen eller bara implementera lyssnargränssnittet. Om det inte går att använda ett alternativ är motsvarande alternativknapp avaktiverad. Om det till exempel inte finns någon lyssnare, eller om en befintlig lyssnare är vald men den valda händelsen redan används, är Använd befintlig lyssnare avaktiverad. Om det inte finns någon tillgänglig adapterklass för en ny lyssnare är alternativknappen extends: ADAPTER_CLASS_NAME avaktiverad.
    • Om du väljer propertyChange i dialogrutan Lägg till händelse kan du även välja mellan alternativ för tillägg av återanrop. Du kan skapa en ny lyssnare som du kan lägga till i JavaBean med hjälp av metoden addPropertyChange(PropertyChangeListener listener). I det fallet används den allmänna återanropsmetoden för lyssnaren, propertyChange(PropertyChangeEvent event), för alla egenskapshändelser. För vissa JavaBeans (till exempel Swing-komponenter) är tvåargumentsmetoden addPropertyChange(String propertyName, PropertyChangeListener listener) tillgänglig och används som standard för nya lyssnare.

      Dialogrutan Lägg till händelse

      En lyssnare som läggs till med hjälp av tvåargumentsmetoden är specifik för en viss egenskap så den kan inte användas för en annan egenskap. En lyssnare som läggs till med en enkelargumentsmetod har en if-sats som kontrollerar namnet för egenskapen innan logiken för varje egenskapsåteranrop bearbetas, enligt 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). 

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.

Lägg till windowClosed

I snabbmenyn för PropertyChangeListener visas alla bundna egenskaper för JavaBean. Om några redan används av PropertyChangeListener avaktiveras de.

lyssnare för egenskapsändring

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.

Närliggande begrepp
Händelser, lyssnare och adapterklasser
Vyn Java-bönor
Närliggande uppgifter
Visa händelser för en komponent
Ta bort händelser från en komponent
Visa källkoden för en händelse

(C) Copyright IBM Corporation 1999, 2004. All Rights Reserved.