Προσθήκη συμβάντων σε συστατικό στοιχείο

Μπορείτε να προσθέσετε ένα συμβάν σε ένα συστατικό στοιχείο στην προβολή σχεδίασης ή την προβολή Java Beans της λειτουργίας επεξεργασίας γραφικού περιβάλλοντος για Java.

Για την προσθήκη συμβάντος σε συστατικό στοιχείο:
  1. Πατήστε με το δεξί κουμπί του ποντικιού το συστατικό στοιχείο στην προβολή Java Beans ή την προβολή σχεδίασης.
  2. Από το αναδυόμενο μενού, πατήστε "Συμβάντα". Το αναδυόμενο μενού εμφανίζει τα προτιμώμενα συμβάντα για το συστατικό στοιχείο. Πραγματοποιήστε ένα από τα ακόλουθα βήματα:
    • Πατήστε ένα από τα προτιμώμενα συμβάντα για το συστατικό στοιχείο. Το συμβάν προστίθεται στο συστατικό στοιχείο. Για παράδειγμα, για ένα JFrame τα προτιμώμενα συμβάντα είναι τα windowClosed και windowOpened.
    • Πατήστε "Προσθήκη συμβάντων" για το άνοιγμα του παραθύρου προσθήκης συμβάντων.
  3. Εάν ανοίξατε το παράθυρο προσθήκης συμβάντων, σας εμφανίζεται μια λίστα κατηγοριοποιημένων συμβάντων για να επιλέξετε. Επιλέξτε το συμβάν που θέλετε να προσθέσετε, στη συνέχεια πατήστε "Ολοκλήρωση".
    • Το πλαίσιο διαλόγου προσθήκης συμβάντων εμφανίζει όλα τα διαθέσιμα συμβάντα για το συστατικό στοιχείο σε μια διακλάδωση. Η διακλάδωση εμφανίζει τις λειτουργίες ακρόασης συμβάντων ως το πρώτο επίπεδο καταχωρήσεων και κάτω από κάθε καταχώρηση λειτουργία ακρόασης βρίσκονται οι πιθανές επανακλήσεις που μπορεί να προκαλέσει το συμβάν.
      πλαίσιο διαλόγου προσθήκης συμβάντος
    • Μπορείτε να χρησιμοποιήσετε το πλαίσιο διαλόγου για να προσδιορίσετε εάν θέλετε να δημιουργήσετε μια νέα λειτουργία ακρόασης ή να χρησιμοποιήσετε μια υπάρχουσα. Όταν ανοίξει το πλαίσιο διαλόγου, αναλύει τις υπάρχουσες λειτουργίες ακρόασης, και εάν βρει κάποια που πιστεύει ότι πρέπει να χρησιμοποιηθεί εκ νέου, σημειώνει τη λειτουργία ακρόασης με διαφορετικό εικονίδιο. Για υπάρχουσες λειτουργίες ακρόασης που επεκτείνουν μια κλάση προσαρμογέα, χρησιμοποιείται το εικονίδιο κλάση παρόντος συμβάντος, διαφορετικά, χρησιμοποιείται το εικονίδιο παρόν συμβάν. Εντός της ίδιας της λειτουργίας ακρόασης, τα υπάρχοντα συμβάντα εμφανίζονται με ένα πράσινο βέλος πράσινο βέλος και τα διαθέσιμα συμβάντα εμφανίζονται με ένα μη ολοκληρωμένο βέλος μη τετελεσμένο
    • Μπορείτε να προσδιορίσετε εάν θέλετε ή όχι να χρησιμοποιήσετε την υπάρχουσα λειτουργία ακρόασης ή να δημιουργήσετε μια νέα. Κατά τη δημιουργία νέας, μπορείτε να επιλέξετε εάν θέλετε η λειτουργία αυτή να επεκτείνει την κλάση προσαρμογέα ή απλά να υλοποιήσει τη διεπαφή της λειτουργίας ακρόασης. Εάν δεν ισχύει κάποια επιλογή, απενεργοποιούνται τα κουμπιά επιλογής. Για παράδειγμα, εάν δεν υπάρχει λειτουργία ακρόασης ή επιλεγεί μια υπάρχουσα λειτουργία αλλά το επιλεγμένο συμβάν ήδη χρησιμοποιείται, απενεργοποιείται η επιλογή "Χρήση υπάρχουσας λειτουργίας ακρόασης". Εάν δεν υπάρχει διαθέσιμη κλάση προσαρμογέα για νέα λειτουργία ακρόασης, τότε απενεργοποιείται το κουμπί επιλογής "επεκτείνει: ADAPTER_CLASS_NAME".
    • Εάν επιλέξετε propertyChange στο πλαίσιο διαλόγου προσθήκης συμβάντων, έχετε πρόσθετες επιλογές για προσθήκη της επανάκλησης. Μπορεί να δημιουργηθεί μια νέα λειτουργία ακρόασης που προστίθεται στο JavaBean με χρήση της μεθόδου addPropertyChange(PropertyChangeListener listener). Εάν αυτό συμβεί, τότε χρησιμοποιείται η γενική μέθοδος επανάκλησης της λειτουργία ακρόασης propertyChange(PropertyChangeEvent event) για όλα τα συμβάντα ιδιοτήτων. Σε κάποια JavaBeans (όπως τα συστατικά στοιχεία Swing) η μέθοδος δύο ορισμάτων addPropertyChange(String propertyName, PropertyChangeListener listener) είναι διαθέσιμη και χρησιμοποιείται ως προεπιλογή για χρήση από τη νέα λειτουργία ακρόασης.

      πλαίσιο διαλόγου προσθήκης συμβάντων

      Μια λειτουργία ακρόασης που προστίθεται με χρήση της μεθόδου δύο ορισμάτων είναι συγκεκριμένη για μια ορισμένη ιδιότητα και άρα δεν μπορεί να χρησιμοποιηθεί εκ νέου για άλλη ιδιότητα. Μια λειτουργία ακρόασης που προστίθεται με χρήση της μεθόδου μονού ορίσματος έχει μια πρόταση if που ελέγχει το όνομα της ιδιότητας πριν την επεξεργασία της λογικής κάθε επανάκλησης ιδιότητας όπως φαίνεται στον ακόλουθο κώδικα:

      javaBean.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
          public void propertyChange(java.beans.PropertyChangeEvent e) {         
                   if ((e.getPropertyName().equals("font"))) {             
                         System.out.println("propertyChange(font)");         
                   }     
                }
          });

      Αυτό επιτρέπει τη χρήση μιας PropertyChangeListener που προστέθηκε με μέθοδο μονού ορίσματος για περισσότερες από μία ιδιότητες (έχοντας σε χρήση πολλαπλές ενότητες if{}).

Κατά την προσθήκη ενός συμβάντος, εάν υπάρχει λειτουργία ακρόασης που μπορεί να χρησιμοποιηθεί, τότε η μέθοδος επανάκλησης προστίθεται σε αυτή. Διαφορετικά, δημιουργείται μια νέα λειτουργία ακρόασης. Για τη χρήση υπάρχουσας λειτουργίας ακρόασης, πρέπει να υπάρχει μια ανώνυμη εσωτερική κλάση στη JavaBean που να υλοποιεί τη διεπαφή της λειτουργίας ακρόασης. Πρέπει να έχει κενό σώμα μεθόδου για τη μέθοδο επανάκλησης ή να επεκτείνει την κλάση προσαρμογέα και να μην έχει υπάρχουσα μέθοδο για την επανάκληση συμβάντος που προστίθεται. Για μια ιδιότητα, μια υπάρχουσα PropertyChangeListener θα χρησιμοποιηθεί εκ νέου εάν προστεθεί στο JavaBean με τη μέθοδο μονού ορίσματος addPropertyChange(PropertyChangeListener listener). Εάν δεν έχει ήδη κώδικα, προστίθεται η επεξεργασία της ιδιότητας.

Εάν δεν υπάρχει υποψήφια λειτουργία ακρόασης στην οποία να μπορεί να προστεθεί η μέθοδος επανάκλησης, τότε δημιουργείται μια νέα λειτουργία ακρόασης. Πρόκειται για μια ανώνυμη εσωτερική κλάση, και εάν έχει προσδιοριστεί κλάση προσαρμογέα για το συμβάν, τότε η λειτουργία ακρόασης θα την επεκτείνει. Διαφορετικά, θα υλοποιήσει τη διεπαφή της λειτουργίας ακρόασης. Μετά την προσθήκη του συμβάντος, δημιουργείται μια μέθοδος στελέχους με σχόλιο //TODO. Η μέθοδος στελέχους είναι μια ένδειξη του πρωτογενούς κώδικα που θα εκτελεστεί εάν επέλθει το συμβάν και πρέπει τότε να την αλλάξετε για την πραγματοποίηση της απαιτούμενης συμπεριφοράς. Το σχόλιο //TODO εμφανίζεται στο παράθυρο "Εργασίες", με επισήμανση μη ολοκληρωμένων μεθόδων. Αυτό συμβαίνει ώστε να μπορείτε να τις εντοπίσετε αργότερα και να αφαιρέσετε τπ σχόλιο //TODO μόλις εγγραφεί η λογική επανάκλησης.

Στο προηγούμενο παράδειγμα, η μέθοδος windowOpened ήδη υπάρχει. Εάν πρόκειται για λειτουργία ακρόασης που επεκτείνει τον προσαρμογέα, η ίδια λειτουργία ακρόασης θα χρησιμοποιηθεί εκ νέου διότι δεν έχει ήδη μια μέθοδο windowClosed. Προστίθεται η μέθοδος windowClosed(WindowEvent e) και εμφανίζονται εδώ το στέλεχος μεθόδου μαζί με το σχόλιο //TODO που προστέθηκαν:

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();     
            }
});

Στην εξειδικευμένη κατάσταση λειτουργίας, συμβάντα μπορούν επίσης να προστεθούν στο JavaBean όπως παρουσιάστηκε προηγουμένως, αλλά και σε μια λειτουργία ακρόασης στη διακλάδωση Java Beans. Το μενού "Συμβάντα" εμφανίζει όλες τις μεθόδους επανάκλησης συμβάντων σε μια λειτουργία ακρόασης και οποιαδήποτε είναι ήδη σε χρήση απενεργοποιείται.

Προσθήκη windowClosed

Για μια PropertyChangeListener το αναδυόμενο μενού εμφανίζει όλες τις ιδιότητες ορίων στο JavaBean. Εάν ήδη χρησιμοποιούνται κάποιες από τη PropertyChangeListener, τότε απενεργοποιούνται.

PropertyChangeListener

Μια λειτουργία ακρόασης που προστέθηκε με μέθοδο μονού ορίσματος έχει μια πρόταση if που ελέγχει το όνομα της ιδιότητας πριν την επεξεργασία της λογικής κάθε επανάκλησης ιδιότητας όπως φαίνεται στον ακόλουθο κώδικα:

javaBean.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
    public void propertyChange(java.beans.PropertyChangeEvent e) {         
             if ((e.getPropertyName().equals("font"))) {             
                   System.out.println("propertyChange(font)");         
             }     
          }
    });

Αυτό επιτρέπει τη χρήση μιας PropertyChangeListener που προστέθηκε με μια μέθοδο μονού ορίσματος για περισσότερες από μία ιδιότητες (έχοντας σε χρήση πολλαπλές ενότητες if{}), και όταν προστεθεί η δεύτερη και η επόμενη επανάκληση μεθόδου, προστίθενται επίσης νέες ενότητες if{}.

Εάν η propertyChangeListener προστεθεί στο JavaBean με χρήση μεθόδου δύο ορισμάτων addPropertyChangeListener(String propertyName, PropertyChangeListener listener) τότε είναι ειδικά για ένα συγκεκριμένο είδος περιεχομένου. Στην περίπτωση αυτή απενεργοποιούνται όλα τα θυγατρικά στοιχεία του επικαλυπτόμενου μενού "Συμβάντα".

Σχετικές έννοιες
Συμβάντα, λειτουργίες ακρόασης και κλάσεις προσαρμογέων
Η προβολή Java Beans
Σχετικές εργασίες
Προβολή συμβάντων για συστατικό στοιχείο
Διαγραφή συμβάντων από συστατικό στοιχείο
Προβολή του κώδικα για συμβάν

(C) Copyright IBM Corporation 1999, 2004. Με την επιφύλαξη παντός δικαιώματος.