swing:buttons_action_listeners

This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

====== Buttons & Action Listeners ====== ===== Buttons ===== Ένα αντικείμενο τύπου Button δημιουργείται όπως είδαμε με χρήση της κλάση JButton ως εξής: <code java> JButton endButton = new JButton("Click to end program"); endButton.addActionListener(new endProgramActionListener()); someJFrame.add(endButton); </code> ,όπου το Button που δημιουργείται γράφει //"Click to end program"//. Ένα αντικείμενο JButton επίσης συνδέεται με έναν ή περισσότερα αντικείμενα του τύπου //ActionListener// τα οποία εκτελούνται όταν ο χρήστης αλληλεπιδρά με το Button αυτό. Τέλος, το κάθε Button θα πρέπει να ενσωματωθεί σε ένα παράθυρο (ή σε κάποιο panel όπως θα δούμε αργότερα) μέσα από μία δήλωση ανάλογη με την 3η γραμμή του παραπάνω κώδικα. <WRAP tip 80% center round> Η κλάση JButton συνδεέται με τα κουμπιά που εισάγει ο χρήστης και όχι με τα κουμπιά //minimize, resize, close// που βρίσκονται επάνω στο παράθυρο (για λειτουργικό σύστημα Windows επάνω δεξιά) και εισάγονται από το λειτουργικό σύστημα. </WRAP> ===== Action Listeners ===== Όταν ο χρήστης πατάει το ποντίκι του πάνω σε ένα κουμπί ενός παραθύρου δημιουργείται ένα αντικείμενο που αντιστοιχεί στο event που δημιούργησε ο χρήστης. Το αντικείμενο αυτό (event object) λαμβάνεται από ένα άλλο αντικείμενο που ονομάζεται λειτουργεί ως ακροατής τέτοιων events και ονομάζεται listener. Ο listener όταν λάβει ένα event έχει σαν στόχο να εκτελέσει μία μέθοδο ως απάντηση στο συγκεκριμένο event. Η κλήση της συγκεκριμένης μεθόδου γίνεται ασύγχρονα πράγμα που σημαίνει ότι καλείστε να ορίσετε την μέθοδο, αλλά σε κανένα σημείο του προγράμματος σας δεν θα χρειαστεί να την καλέσετε. Συνοπτικά, κάθε πρόγραμμα οφείλει να προσδιορίσει ποια αντικείμενα τύπου [[http://docs.oracle.com/javase/7/docs/api/java/awt/event/ActionListener.html|ActionListener]] αποτελούν ActionListeners για το συγκεκριμένο αντικείμενο.

swing/buttons_action_listeners.1430510004.txt.gz · Last modified: 2016/02/26 11:15 (external edit)