User Tools

Site Tools


swing:events

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
swing:events [2020/03/23 10:55] – [Οι βασικοί τύποι των διαφορετικών Event] gthanosswing:events [Unknown date] (current) – external edit (Unknown date) 127.0.0.1
Line 5: Line 5:
 Ο **//window manager//** δημιουργεί //events// για κάθε απειροελάχιστη μεταβολή της θέσης του ποντικιού ή για το πάτημα ενός κουμπιού από το πληκτρολόγιο. Τα περισσότερα προγράμματα δεν τα ενδιαφέρει το σύνολο των //events// που παράγονται. Προκειμένου ένα πρόγραμμα να μην "βομβαρδίζεται" με πολλά διαφορετικά events τα οποία του είναι αδιάφορα θα πρέπει να θεσπίσει του δικούς του κανόνες για το ποια events το ενδιαφέρουν. Η θέσπιση των κανόνων αυτών γίνεται μέσα από αντικείμενα τύπου event listeners, τα οποία ακούν σε συγκεκριμένου τύπου events.  Ο **//window manager//** δημιουργεί //events// για κάθε απειροελάχιστη μεταβολή της θέσης του ποντικιού ή για το πάτημα ενός κουμπιού από το πληκτρολόγιο. Τα περισσότερα προγράμματα δεν τα ενδιαφέρει το σύνολο των //events// που παράγονται. Προκειμένου ένα πρόγραμμα να μην "βομβαρδίζεται" με πολλά διαφορετικά events τα οποία του είναι αδιάφορα θα πρέπει να θεσπίσει του δικούς του κανόνες για το ποια events το ενδιαφέρουν. Η θέσπιση των κανόνων αυτών γίνεται μέσα από αντικείμενα τύπου event listeners, τα οποία ακούν σε συγκεκριμένου τύπου events. 
  
-Θα πρέπει να τονίσουμε ότι υπάρχουν διαφορετικοί τύποι event για κάθε διαφορετικό τύπο αλληλεπίδρασης του χρήστη με το γραφικό περιβάλλον. Για παράδειγμα, η μετακίνηση του ποντικιού ή το πάτημα ενός κουμπιού από το ποντίκι παράγει ένα **MouseEvent** ενώ το πάτημα ενός κουμπιού ή η επιλογή ενός menu παράγει ένα **ActionEvent**. Επομένως, το κάθε πρόγραμμα θα πρέπει να θεσπίσει τους κατάλληλους event //listeners// που διαχειρίζονται τα event που παράγονται από τις οντότητες του γραφικού περιβάλλοντος που μας ενδιαφέρουν. Η διαδικασία διαχείρισης και αντίδρασης του προγράμματος σε ένα event, ονομάζεται //**event handling**//.+Θα πρέπει να τονίσουμε ότι υπάρχουν διαφορετικοί τύποι event για κάθε διαφορετικό τύπο αλληλεπίδρασης του χρήστη με το γραφικό περιβάλλον. Για παράδειγμα, η μετακίνηση του ποντικιού ή το πάτημα ενός κουμπιού από το ποντίκι παράγει ένα **MouseEvent** ενώ το πάτημα ενός κουμπιού ή η επιλογή ενός menu παράγει ένα **ActionEvent**. Επομένως, το κάθε πρόγραμμα θα πρέπει να θεσπίσει τους κατάλληλους event //listeners// που διαχειρίζονται τα event που παράγονται από τις οντότητες του γραφικού περιβάλλοντος που ενδιαφέρουν. Η διαδικασία διαχείρισης και αντίδρασης του προγράμματος σε ένα event, ονομάζεται //**event handling**//.
  
 Η εικόνα που ακολουθεί συνοψίζει την διαδικασία για την εφαρμογή της προηγούμενης ενότητας που περιέχει μόνο ένα κουμπί (//button//). Η εικόνα που ακολουθεί συνοψίζει την διαδικασία για την εφαρμογή της προηγούμενης ενότητας που περιέχει μόνο ένα κουμπί (//button//).
Line 50: Line 50:
   * **[[https://docs.oracle.com/javase/8/docs/api/java/awt/event/ActionListener.html|ActionListener]]:** Έχει την δυνατότητα να "πιάσει" ένα [[https://docs.oracle.com/javase/8/docs/api/java/awt/event/ActionEvent.html|ActionEvent]]. Διαθέτει την εξής μέθοδο:   * **[[https://docs.oracle.com/javase/8/docs/api/java/awt/event/ActionListener.html|ActionListener]]:** Έχει την δυνατότητα να "πιάσει" ένα [[https://docs.oracle.com/javase/8/docs/api/java/awt/event/ActionEvent.html|ActionEvent]]. Διαθέτει την εξής μέθοδο:
     * **void actionPerformed(ActionEvent e)**:     * **void actionPerformed(ActionEvent e)**:
-  * **[[https://docs.oracle.com/javase/8/docs/api/java/awt/event/ItemListener.html|ItemListener]]:** Έχει την δυνατότητα να "πιάσει" ένα [[https://docs.oracle.com/javase/8/docs/api/java/awt/event/ItemEvent.html|ItemEvent]], το οποίο συνήθως παράγεται από ένα [[swing:jchekbox|CheckBox]] //component//.+  * **[[https://docs.oracle.com/javase/8/docs/api/java/awt/event/ItemListener.html|ItemListener]]:** Έχει την δυνατότητα να "πιάσει" ένα [[https://docs.oracle.com/javase/8/docs/api/java/awt/event/ItemEvent.html|ItemEvent]], το οποίο συνήθως παράγεται από ένα //CheckBox component//.
   * **[[https://docs.oracle.com/javase/8/docs/api/java/awt/event/KeyListener.html|KeyListener]]:** Έχει την δυνατότητα να "πιάσει" ένα [[https://docs.oracle.com/javase/8/docs/api/java/awt/event/KeyEvent.html|KeyEvent]]. Διαθέτεις τις εξής μεθόδους:   * **[[https://docs.oracle.com/javase/8/docs/api/java/awt/event/KeyListener.html|KeyListener]]:** Έχει την δυνατότητα να "πιάσει" ένα [[https://docs.oracle.com/javase/8/docs/api/java/awt/event/KeyEvent.html|KeyEvent]]. Διαθέτεις τις εξής μεθόδους:
     * **void keyTyped(KeyEvent e):** Η μέθοδος καλείται εάν πατηθεί ένα πλήκτρο ή συνδυασμός πλήκτρων που αντιστοιχεί σε εκτυπώσιμο χαρακτήρα. Δεν έχει σημασία εάν το πλήκτρο έχει ελευθερωθεί ή όχι, αρκεί να έχει σηματοδοτηθεί η παραγωγή του χαρακτήρα προς την εφαρμογή.     * **void keyTyped(KeyEvent e):** Η μέθοδος καλείται εάν πατηθεί ένα πλήκτρο ή συνδυασμός πλήκτρων που αντιστοιχεί σε εκτυπώσιμο χαρακτήρα. Δεν έχει σημασία εάν το πλήκτρο έχει ελευθερωθεί ή όχι, αρκεί να έχει σηματοδοτηθεί η παραγωγή του χαρακτήρα προς την εφαρμογή.
swing/events.1584960921.txt.gz · Last modified: 2020/03/23 10:55 (external edit)