Η προβολή Java Beans εμφανίζει όλα τα συμβάντα που έχουν οριστεί στα συστατικά στοιχεία της κλάσης γραφικών.
Η προβολή Java Beans έχει τρεις καταστάσεις λειτουργίας για την εμφάνιση συμβάντων:
Για την προβολή των συμβάντων σε συστατικό στοιχείο:
Όταν επιλεγεί η "Εμφάνιση συμβάντων", τα συμβάντα που χρησιμοποιούνται από κάθε συστατικό στοιχείο εμφανίζονται ως θυγατρικά στοιχεία στη διακλάδωση.
τα συμβάντα σημειώνονται με πράσινα βέλη , τα συμβάντα αλλαγής ιδιοτήτων σημειώνονται με μπλε βέλη
.
Για να χρησιμοποιηθεί ένα συμβάν από συστατικό στοιχείο, πρέπει να υπάρχει μια καταχωρημένη λειτουργία ακρόασης και η μέθοδος επανάκλησης πρέπει να περιέχει μέρος κώδικα. Η λίστα των αναγνωρισμένων μοτίβων πρωτογενούς κώδικα που χρησιμοποιούνται από τη λειτουργία επεξεργασίας γραφικού περιβάλλοντος περιγράφονται στα μοτίβα πρωτογενούς κώδικα για την ενότητα συμβάντων. Στην εικόνα που ακολουθεί, η προβολή Java Beans εμφανίζει ένα JFrame με συμβάν windowOpened και ένα κουμπί με συμβάν actionPerformed. Το κουμπί έχει επίσης μια PropertyChangeListener για τις ενεργοποιημένες ιδιότητες και αυτό εμφανίζεται με μπλε βέλος αντί για πράσινο.
Κάθε συμβάν αποτελείται από το συστατικό στοιχείο πρωτογενούς κώδικα (στο παράδειγμα χρησιμοποιείται το JFrame ή το JButton), μια κλάση που υλοποιεί τη διεπαφής της λειτουργίας ακρόασης που προστίθεται στον πρωτογενή κώδικα με χρήση της addXXXListener(XXXListener), και μέρος κώδικα εντός του σώματος της μεθόδου επανάκλησης.
Στην κατάσταση λειτουργίας "Ειδικά συμβάντα", κάθε λειτουργία ακρόασης για το συστατικό στοιχείο εμφανίζεται ως θυγατρικός κόμβος διακλάδωσης και τα συμβάντα εμφανίζονται κάτω από κάθε λειτουργία ακρόασης. Αυτό αυξάνει τον αριθμό των στοιχείων στη διακλάδωση, όμως εμφανίζει περισσότερες λεπτομέρειες σχετικά με το πώς τα συμβάντα προσαρτώνται στα συστατικά στοιχεία. Η επιλογή των δύο καταστάσεων λειτουργίας σας επιτρέπει να αποφασίσετε σε ποιο επίπεδο λεπτομερειών θέλετε να εργαστείτε.
Στην ειδική κατάσταση λειτουργίας το εικονίδιο που χρησιμοποιείται για τη λειτουργία ακρόασης εμφανίζει το είδος κλάσης της λειτουργίας ακρόασης. Εάν η λειτουργία ακρόασης είναι μια ανώνυμη εσωτερική κλάση που υλοποιεί τη διεπαφή της λειτουργίας ακρόασης, χρησιμοποιείται το εικονίδιο , και εάν η λειτουργία ακρόασης είναι μια ανώνυμη εσωτερική κλάση που επεκτείνει την κλάση του προσαρμογέα λειτουργίας ακρόασης, χρησιμοποιείται το εικονίδιο
.
Επιπλέον των ανώνυμων εσωτερικών κλάσεων που χρησιμοποιούνται για λειτουργίες ακρόασης, αναλύονται και αναγνωρίζονται από τη λειτουργία επεξεργασίας γραφικού περιβάλλοντος επώνυμες κλάσεις και κοινόχρηστες λειτουργίες ακρόασης.
Εάν η λειτουργία ακρόασης δεν είναι ανώνυμη στην ειδική κατάσταση λειτουργίας, τότε το εικονίδιο είναι . Εάν η λειτουργία ακρόασης είναι κοινόχρηστη από περισσότερα από ένα συστατικά στοιχεία, χρησιμοποιείται το εικονίδιο
. Εάν η λειτουργία ακρόασης χρησιμοποιείται από ένα μόνο συμβάν, τότε παρατίθενται σε λίστα ως θυγατρικά στοιχεία της λειτουργίας ακρόασης. Ωστόσο, εάν η κλάση λειτουργίας ακρόασης χρησιμοποιείται από περισσότερες από μία διεπαφές λειτουργίας ακρόασης συμβάντων για το συστατικό στοιχείο, στην ειδική κατάσταση λειτουργίας αυτές οι διεπαφές λειτουργίας ακρόασης εμφανίζονται ως ξεχωριστά θυγατρικά στοιχεία της κλάσης λειτουργίας ακρόασης, όπως φαίνεται στην ακόλουθη εικόνα:
Ο πρωτογενής του κώδικας εμφανίζεται στην ακόλουθη πρόταση κώδικα. Η εσωτερική κλάση της λειτουργίας ακρόασης IvjEventHandler χρησιμοποιείται μια φορά από το πρώτο κουμπί (this) για keyPressedEvent, και δύο φορές από το κουμπί "Cancel", μία για keyPressed (αποτελεί μέρος του συμβάντος key) και άλλη μια φορά για actionPerformed (αποτελεί μέρος του συμβάντος action).
class IvjEventHandler implements java.awt.event.ActionListener, java.awt.event.KeyListener { public void actionPerformed(java.awt.event.ActionEvent e) { if (e.getSource() == VCEStyle2.this.getCancelButton()) connEtoC3(e); }; public void keyPressed(java.awt.event.KeyEvent e) { if (e.getSource() == VCEStyle2.this.getCancelButton()) connEtoC2(e); if (e.getSource() == VCEStyle2.this) connEtoC1(e); }; public void keyReleased(java.awt.event.KeyEvent e) {}; public void keyTyped(java.awt.event.KeyEvent e) {}; };