This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
|
swing:events [2018/03/27 20:27] gthanos [Παράδειγμα - Πιάνοντας ένα event μέσω ενός Event Listener] |
swing:events [2020/03/17 06:36] gthanos [Παράδειγμα - Πιάνοντας ένα event μέσω ενός Event Listener] |
||
|---|---|---|---|
| Line 5: | Line 5: | ||
| Ο **//window manager//** δημιουργεί //events// για κάθε απειροελάχιστη μεταβολή της θέσης του ποντικιού ή για το πάτημα ενός κουμπιού από το πληκτρολόγιο. Τα περισσότερα προγράμματα δεν τα ενδιαφέρει το σύνολο των //events// που παράγονται. Προκειμένου ένα πρόγραμμα να μην " | Ο **//window manager//** δημιουργεί //events// για κάθε απειροελάχιστη μεταβολή της θέσης του ποντικιού ή για το πάτημα ενός κουμπιού από το πληκτρολόγιο. Τα περισσότερα προγράμματα δεν τα ενδιαφέρει το σύνολο των //events// που παράγονται. Προκειμένου ένα πρόγραμμα να μην " | ||
| - | Θα πρέπει να τονίσουμε ότι υπάρχουν διαφορετικοί τύποι event για κάθε διαφορετικό τύπο αλληλεπίδρασης του χρήστης με το γραφικό περιβάλλον. Για παράδειγμα, | + | Θα πρέπει να τονίσουμε ότι υπάρχουν διαφορετικοί τύποι event για κάθε διαφορετικό τύπο αλληλεπίδρασης του χρήστη με το γραφικό περιβάλλον. Για παράδειγμα, |
| Η εικόνα που ακολουθεί συνοψίζει την διαδικασία για την εφαρμογή της προηγούμενης ενότητας που περιέχει μόνο ένα κουμπί (// | Η εικόνα που ακολουθεί συνοψίζει την διαδικασία για την εφαρμογή της προηγούμενης ενότητας που περιέχει μόνο ένα κουμπί (// | ||
| Line 13: | Line 13: | ||
| ===== Οι βασικοί τύποι των διαφορετικών Event ===== | ===== Οι βασικοί τύποι των διαφορετικών Event ===== | ||
| - | Όλα τα events που μας ενδιαφέρουν κληρονομούν την κλάση **[[https:// | + | Τα περισσότερα από τα //events// που μας ενδιαφέρουν κληρονομούν την κλάση **[[https:// |
| - | Οι κλάσεις των events βρίσκονται μέσα στο πακέτο **java.awt.event**. Οι κυριότεροι τύποι event είναι οι εξής: | + | Οι κλάσεις των events βρίσκονται μέσα στα πακέτα [[https:// |
| * **[[https:// | * **[[https:// | ||
| Line 28: | Line 28: | ||
| - Ο δρομέας του ποντικιού εξάγεται από περιοχή που συμπίπτει με το // | - Ο δρομέας του ποντικιού εξάγεται από περιοχή που συμπίπτει με το // | ||
| - Ο δρομέας του ποντικιού μετακινείται πάνω σε περιοχή που συμπίπτει με το // | - Ο δρομέας του ποντικιού μετακινείται πάνω σε περιοχή που συμπίπτει με το // | ||
| - | - Ο δρομέας του ποντικιού μετακινείται έχοντας παράλληλα πατημένο το αριστερό πλήκτρο | + | - Ο δρομέας του ποντικιού μετακινείται έχοντας παράλληλα πατημένο το αριστερό πλήκτρο σέρνωντας (drags) ένα // |
| * Οι κυριότερες μέθοδοι της κλάσης **[[https:// | * Οι κυριότερες μέθοδοι της κλάσης **[[https:// | ||
| * **public int getButton(): | * **public int getButton(): | ||
| Line 45: | Line 45: | ||
| ===== Event Listeners ===== | ===== Event Listeners ===== | ||
| - | Για τον πιάσιμο των παραπάνω τύπων events, η Java ορίζει ένα σύνολο από interfaces, τα οποία τα οποία όταν υλοποιούνται από μία κλάση και συνδυαστούν με κάποιο από τα // | + | Για τον πιάσιμο των παραπάνω τύπων events, η Java ορίζει ένα σύνολο από interfaces, τα οποία τα οποία όταν υλοποιούνται από μία κλάση και συνδυαστούν με κάποιο από τα // |
| Οι κυριότεροι Event Listeners είναι οι εξής: | Οι κυριότεροι Event Listeners είναι οι εξής: | ||
| Line 54: | Line 54: | ||
| * **void keyTyped(KeyEvent e):** Η μέθοδος καλείται εάν πατηθεί ένα πλήκτρο ή συνδυασμός πλήκτρων που αντιστοιχεί σε εκτυπώσιμο χαρακτήρα. Δεν έχει σημασία εάν το πλήκτρο έχει ελευθερωθεί ή όχι, αρκεί να έχει σηματοδοτηθεί η παραγωγή του χαρακτήρα προς την εφαρμογή. | * **void keyTyped(KeyEvent e):** Η μέθοδος καλείται εάν πατηθεί ένα πλήκτρο ή συνδυασμός πλήκτρων που αντιστοιχεί σε εκτυπώσιμο χαρακτήρα. Δεν έχει σημασία εάν το πλήκτρο έχει ελευθερωθεί ή όχι, αρκεί να έχει σηματοδοτηθεί η παραγωγή του χαρακτήρα προς την εφαρμογή. | ||
| * **void keyPressed(KeyEvent e):** Η μέθοδος καλείται εάν πατηθεί οποιοδήποτε πλήκτρο. | * **void keyPressed(KeyEvent e):** Η μέθοδος καλείται εάν πατηθεί οποιοδήποτε πλήκτρο. | ||
| - | * **void | + | * **void |
| * **[[https:// | * **[[https:// | ||
| * **void mouseClicked(MouseEvent e):** Καλείται όταν πατηθεί ένα κουμπί του ποντικιού (πατηθεί και απελευθερωθεί) πάνω στο στοιχείο (// | * **void mouseClicked(MouseEvent e):** Καλείται όταν πατηθεί ένα κουμπί του ποντικιού (πατηθεί και απελευθερωθεί) πάνω στο στοιχείο (// | ||
| Line 101: | Line 101: | ||
| frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | ||
| | | ||
| - | button = new JButton(" | + | button = new JButton(" |
| button.setBackground(new Color(0xe9, | button.setBackground(new Color(0xe9, | ||
| button.setFont(new Font(" | button.setFont(new Font(" | ||
| Line 119: | Line 119: | ||
| } | } | ||
| public void mouseEntered(MouseEvent e) { | public void mouseEntered(MouseEvent e) { | ||
| - | button.setText(" | + | button.setText(" |
| } | } | ||
| public void mouseExited(MouseEvent e) { | public void mouseExited(MouseEvent e) { | ||
| - | button.setText(" | + | button.setText(" |
| } | } | ||
| public void mousePressed(MouseEvent e) { | public void mousePressed(MouseEvent e) { | ||
| - | button.setText(" | + | button.setText(" |
| } | } | ||
| public void mouseReleased(MouseEvent e) { | public void mouseReleased(MouseEvent e) { | ||
| - | button.setText(" | + | button.setText(" |
| } | } | ||
| }); | }); | ||