swing:popup_menus

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision Both sides next revision
swing:popup_menus [2015/05/18 06:44]
gthanos
swing:popup_menus [2015/05/18 06:45]
gthanos
Line 3: Line 3:
 Ένα pop-up menu (υλοποιείται από την κλάση [[http://​docs.oracle.com/​javase/​7/​docs/​api/​javax/​swing/​JPopupMenu.html|JPopupMenu]]) μοιάζει στην δομή του με ένα οποιοδήποτε άλλο μενού, με την ιδιαιτερότητα ότι είναι διαφορετικός ο τρόπος με τον οποίο γίνεται trigger και εμφανίζεται στην οθόνη. Κατ'​ αρχήν, κάθε λειτουργικό σύστημα έχει χρησιμοποιεί διαφορετική αλληλουχία events προκειμένου να εμφανιστεί ένα pop-up menu. Για παράδειγμα στο λειτουργικό σύστημα Windows και στην πλατφόρμα KDE το pop-up menu εμφανίζεται με δεξί κλικ. Σε άλλες πλατφόρμες η παραπάνω σύμβαση μπορεί να είναι διαφορετική. ​ Ένα pop-up menu (υλοποιείται από την κλάση [[http://​docs.oracle.com/​javase/​7/​docs/​api/​javax/​swing/​JPopupMenu.html|JPopupMenu]]) μοιάζει στην δομή του με ένα οποιοδήποτε άλλο μενού, με την ιδιαιτερότητα ότι είναι διαφορετικός ο τρόπος με τον οποίο γίνεται trigger και εμφανίζεται στην οθόνη. Κατ'​ αρχήν, κάθε λειτουργικό σύστημα έχει χρησιμοποιεί διαφορετική αλληλουχία events προκειμένου να εμφανιστεί ένα pop-up menu. Για παράδειγμα στο λειτουργικό σύστημα Windows και στην πλατφόρμα KDE το pop-up menu εμφανίζεται με δεξί κλικ. Σε άλλες πλατφόρμες η παραπάνω σύμβαση μπορεί να είναι διαφορετική. ​
  
-Η Java λαμβάνει υπόψη αυτή την ιδιαιτερότητα,​ δίνοντας μας την δυνατότητα να εξετάσουμε κάθε φορά αν η αλληλουχία πλήκτρων του ποντικιού που έχουμε πατήσει είναι η κατάλληλη για να εμφανιστεί το pop-up menu. Για να εμφανίσουμε ένα pop-up menu δεν εξετάζουμε events του τύπου [[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​awt/​event/​ActionEvent.html|ActionEvent]],​ αλλά [[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​awt/​event/​MouseEvent.html|MouseEvent]]. Τα events ​αυτού ​του τύπου λαμβάνονται από μία κλάση που υλοποιεί το interface [[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​awt/​event/​MouseListener.html|MouseListener]]. Η Java διαθέτει την έτοιμη κλάση [[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​awt/​event/​MouseAdapter.html|MouseAdapter]] που υλοποιεί μια σειρά από interfaces που συνδέονται με το ποντίκι. Μπορείτε να επεκτείνετε αυτή την κλάση, υλοποιώντας μόνο τις μεθόδους που χρειάζεστε. Εδώ, θα χρειαστούμε τις μεθόδους από το interface //​MouseListener//​.+Η Java λαμβάνει υπόψη αυτή την ιδιαιτερότητα,​ δίνοντας μας την δυνατότητα να εξετάσουμε κάθε φορά αν η αλληλουχία πλήκτρων του ποντικιού που έχουμε πατήσει είναι η κατάλληλη για να εμφανιστεί το pop-up menu. Για να εμφανίσουμε ένα pop-up menu δεν εξετάζουμε events του τύπου [[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​awt/​event/​ActionEvent.html|ActionEvent]],​ αλλά ​του τύπου ​[[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​awt/​event/​MouseEvent.html|MouseEvent]]. Τα events του τύπου ​αυτού ​λαμβάνονται από μία κλάση που υλοποιεί το interface [[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​awt/​event/​MouseListener.html|MouseListener]]. Η Java διαθέτει την έτοιμη κλάση [[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​awt/​event/​MouseAdapter.html|MouseAdapter]] που υλοποιεί μια σειρά από interfaces που συνδέονται με το ποντίκι. Μπορείτε να επεκτείνετε αυτή την κλάση, υλοποιώντας μόνο τις μεθόδους που χρειάζεστε. Εδώ, θα χρειαστούμε τις μεθόδους από το interface //​MouseListener//​.
  
 <code java> <code java>
swing/popup_menus.txt · Last modified: 2016/02/26 11:15 (external edit)