Ενα Εκδήλωση στην Java είναι ένα αντικείμενο που δημιουργείται όταν αλλάζει κάτι μέσα σε μια γραφική διεπαφή χρήστη. Εάν ένας χρήστης κάνει κλικ σε ένα κουμπί, κάνει κλικ σε ένα σύνθετο πλαίσιο ή πληκτρολογεί χαρακτήρες σε ένα πεδίο κειμένου κτλ., Τότε ενεργοποιείται ένα συμβάν, δημιουργώντας το σχετικό αντικείμενο συμβάντος. Αυτή η συμπεριφορά αποτελεί μέρος του μηχανισμού διαχείρισης συμβάντων της Java και περιλαμβάνεται στη βιβλιοθήκη Swing GUI.
Για παράδειγμα, ας πούμε ότι έχουμε ένα JButton. Εάν ένας χρήστης κάνει κλικ στο JButton, ένα γεγονός κλικ κλικ ενεργοποιείται, το συμβάν θα δημιουργηθεί, και θα σταλεί στο σχετικό ακροατής του γεγονότος (στην περίπτωση αυτή, το ActionListener). Ο σχετικός ακροατής θα έχει εφαρμόσει κώδικα που καθορίζει τη δράση που πρέπει να ακολουθήσει όταν συμβαίνει το συμβάν.
Σημειώστε ότι μια πηγή συμβάντος πρέπει να συνδυαστεί με έναν ακροατή του γεγονότος ή η ενεργοποίησή του δεν θα έχει αποτέλεσμα.
Πώς λειτουργούν τα συμβάντα
Ο χειρισμός συμβάντων στην Java αποτελείται από δύο βασικά στοιχεία:
- Η πηγή του συμβάντος, το οποίο είναι ένα αντικείμενο που δημιουργείται όταν συμβεί κάποιο συμβάν. Η Java παρέχει διάφορους τύπους αυτών των πηγών συμβάντων, που συζητούνται στην ενότητα Τύποι συμβάντων παρακάτω.
- Ο ακροατής της εκδήλωσης, το αντικείμενο που "ακούει" τα γεγονότα και τις επεξεργάζεται όταν συμβαίνουν.
Υπάρχουν διάφοροι τύποι συμβάντων και ακροατών στη Java: κάθε τύπος συμβάντος συνδέεται με έναν αντίστοιχο ακροατή. Για αυτή τη συζήτηση, ας εξετάσουμε ένα κοινό τύπο εκδήλωσης, ένα δράση που αντιπροσωπεύεται από την τάξη Java ActionEvent, το οποίο ενεργοποιείται όταν ένας χρήστης κάνει κλικ σε ένα κουμπί ή σε ένα στοιχείο μιας λίστας.
Στη δράση του χρήστη, ένα ActionEvent αντικειμένου που αντιστοιχεί στη σχετική ενέργεια. Αυτό το αντικείμενο περιέχει τόσο τις πληροφορίες πηγής συμβάντος όσο και τις συγκεκριμένες ενέργειες του χρήστη. Αυτό το αντικείμενο συμβάντος διαβιβάζεται στην αντίστοιχη ActionListener μέθοδος του αντικειμένου:
άκυρη ενέργειαΕφαρμογή (ActionEvent e)
Αυτή η μέθοδος εκτελείται και επιστρέφει την κατάλληλη απόκριση GUI, η οποία μπορεί να είναι να ανοίξει ή να κλείσει ένα παράθυρο διαλόγου, να κατεβάσετε ένα αρχείο, να δώσετε μια ψηφιακή υπογραφή ή οποιαδήποτε άλλη από τις μυριάδες ενέργειες που είναι διαθέσιμες στους χρήστες σε ένα διεπαφή.
Τύποι συμβάντων
Ακολουθούν ορισμένοι από τους πιο συνηθισμένους τύπους συμβάντων στη Java:
- ActionEvent: Αντιπροσωπεύει ένα γραφικό στοιχείο που κάνει κλικ, όπως ένα κουμπί ή ένα στοιχείο σε μια λίστα. Σχετικός ακροατής: ActionListener.
- ContainerEvent: Αντιπροσωπεύει ένα συμβάν που εμφανίζεται στο ίδιο το κιβώτιο του GUI, για παράδειγμα, εάν ένας χρήστης προσθέτει ή αφαιρεί ένα αντικείμενο από τη διασύνδεση. Σχετικός ακροατής: ContainerListener.
- KeyEvent: Αντιπροσωπεύει ένα συμβάν στο οποίο ο χρήστης πιέζει, πληκτρολογεί ή απελευθερώνει ένα κλειδί. Σχετικός ακροατής: KeyListener.
- WindowEvent: Αντιπροσωπεύει ένα γεγονός που σχετίζεται με ένα παράθυρο, για παράδειγμα, όταν ένα παράθυρο είναι κλειστό, ενεργοποιημένο ή απενεργοποιημένο. Σχετικός ακροατής: WindowListener.
- MouseEvent: Αντιπροσωπεύει οποιοδήποτε συμβάν που σχετίζεται με ένα ποντίκι, όπως όταν πατηθεί ή πατηθεί ένα ποντίκι. Σχετικός ακροατής: MouseListener.
Σημειώστε ότι πολλοί ακροατές και πηγές συμβάντων μπορούν να αλληλεπιδρούν μεταξύ τους. Για παράδειγμα, πολλά γεγονότα μπορούν να καταχωρηθούν από έναν μόνο ακροατή, αν είναι του ίδιου τύπου. Αυτό σημαίνει ότι, για ένα παρόμοιο σύνολο στοιχείων που εκτελούν τον ίδιο τύπο ενέργειας, ένας ακροατής συμβάντος μπορεί να χειριστεί όλα τα συμβάντα. Ομοίως, ένα μόνο γεγονός μπορεί να συνδεθεί με πολλούς ακροατές, αν αυτό ταιριάζει με το σχεδιασμό του προγράμματος (αν και αυτό είναι λιγότερο κοινό).