Ένας ακροατής του γεγονότος στο Ιάβα έχει σχεδιαστεί για να επεξεργάζεται κάποιο είδος συμβάντος - ακούει για ένα συμβάν, όπως ένα κλικ με το ποντίκι ενός χρήστη ή ένα πλήκτρο και, στη συνέχεια, ανταποκρίνεται ανάλογα. Ένας ακροατής του συμβάντος πρέπει να είναι συνδεδεμένος με ένα αντικείμενο συμβάντος που ορίζει το συμβάν.
Για παράδειγμα, γραφικά στοιχεία, όπως a JButton ή JTextField είναι γνωστά ως πηγές συμβάντων. Αυτό σημαίνει ότι μπορούν να δημιουργήσουν συμβάντα (που ονομάζονται αντικείμενα γεγονότων), όπως η παροχή ενός JButton για να κάνει κλικ ένας χρήστης ή a JTextField στην οποία ο χρήστης μπορεί να εισάγει κείμενο. Η δουλειά του ακροατή είναι να πιάσει αυτά τα γεγονότα και να κάνει κάτι μαζί τους.
Πώς λειτουργούν οι ακροατές των εκδηλώσεων
Κάθε διεπαφή ακροατή συμβάντος περιλαμβάνει τουλάχιστον μία μέθοδο που χρησιμοποιείται από την αντίστοιχη πηγή συμβάντος.
Για αυτή τη συζήτηση, ας εξετάσουμε ένα γεγονός ποντικιού, δηλαδή οποτεδήποτε ένας χρήστης κάνει κλικ σε κάτι με ένα ποντίκι, που αντιπροσωπεύεται από την κλάση Java
MouseEvent. Για να χειριστείτε αυτό το είδος συμβάντος, θα πρέπει πρώτα να δημιουργήσετε ένα MouseListener class που υλοποιεί την Java MouseListener διεπαφή. Αυτή η διεπαφή έχει πέντε μεθόδους. εφαρμόστε αυτό που σχετίζεται με τον τύπο της δράσης του ποντικιού που προσδοκάτε από το χρήστη που τραβάτε. Αυτά είναι:-
κενό mouseKlicked (MouseEvent e)
Επίκληση όταν έχει πατηθεί το κουμπί του ποντικιού (πατημένο και απελευθερωμένο) σε ένα στοιχείο. -
κενό mouseEntered (MouseEvent e)
Επίκληση όταν το ποντίκι εισέρχεται σε ένα στοιχείο. -
κενό mouseExited (MouseEvent e)
Επίκληση όταν το ποντίκι εξέρχεται από ένα στοιχείο. -
κενό ποντικιούΠαρατημένο (MouseEvent e)
Επίκληση όταν πατηθεί ένα κουμπί του ποντικιού σε ένα στοιχείο. -
κενό mouseReleased (MouseEvent e)
Επίκληση όταν ένα κουμπί του ποντικιού έχει απελευθερωθεί σε ένα στοιχείο
Όπως μπορείτε να δείτε, κάθε μέθοδος έχει μία παράμετρο αντικειμένου συμβάντος: το συγκεκριμένο γεγονός του ποντικιού που έχει σχεδιαστεί για να χειρίζεται. Στο δικό σου MouseListener τάξη, εσύ κανω ΕΓΓΡΑΦΗ να "ακούσετε" οποιοδήποτε από αυτά τα γεγονότα, έτσι ώστε να ενημερώνονται όταν συμβαίνουν.
Όταν το συμβάν πυροδοτηθεί (για παράδειγμα, ο χρήστης κάνει κλικ στο ποντίκι, σύμφωνα με το mouseClicked () παραπάνω), ένα σχετικό MouseEvent αντικείμενο που αντιπροσωπεύει αυτό το συμβάν δημιουργείται και μεταβιβάζεται στο MouseListener αντικείμενο που έχει καταχωριστεί για να το λάβει.
Τύποι ακροατών συμβάντων
Οι ακροατές συμβάντων αντιπροσωπεύονται από διαφορετικές διεπαφές, κάθε μία από τις οποίες έχει σχεδιαστεί για να επεξεργάζεται ένα ισοδύναμο γεγονός.
Σημειώστε ότι οι ακροατές των εκδηλώσεων είναι ευέλικτοι επειδή ένας μόνος ακροατής μπορεί να εγγραφεί για να "ακούσει" πολλούς τύπους συμβάντων. Αυτό σημαίνει ότι, για ένα παρόμοιο σύνολο στοιχείων που εκτελούν τον ίδιο τύπο ενέργειας, ένας ακροατής συμβάντος μπορεί να χειριστεί όλα τα συμβάντα.
Ακολουθούν ορισμένοι από τους πιο συνηθισμένους τύπους:
- ActionListener: Ακούει για ένα ActionEvent, δηλαδή όταν χτυπά ένα γραφικό στοιχείο όπως ένα κουμπί ή ένα στοιχείο σε μια λίστα.
- ContainerListener: Ακούει για ένα ContainerEvent, η οποία μπορεί να συμβεί αν ο χρήστης προσθέσει ή αφαιρέσει ένα αντικείμενο από τη διασύνδεση.
- KeyListener: Ακούει για ένα KeyEvent στην οποία ο χρήστης πιέζει, τυπώνει ή απελευθερώνει ένα κλειδί.
- WindowListener: Ακούει για ένα WindowEvent, για παράδειγμα, όταν ένα παράθυρο είναι κλειστό, ενεργοποιημένο ή απενεργοποιημένο.
- MouseListener: Ακούει για ένα MouseEvent, όπως όταν πατηθεί ή πατηθεί ένα ποντίκι.