User Tools

Site Tools


swing:intro

Δημιουργία παραθυρικών εφαρμογών με Swing

Σε αυτή την ενότητα θα δούμε πως μπορούμε να κατασκευάσουμε παραθυρικές εφαρμογές (Graphical User Interfaces, GUIs) με χρήση της βιβλιοθήκης Swing. Οι παραθυρικές εφαρμογές είναι διαφορετικές από τις εφαρμογές που χρησιμοποιούν την κονσόλα για είσοδο και έξοδο, με την έννοια ότι δεν υφίσταται μία συνεχής ροή προγράμματος, αλλά τμήματα του προγράμματος, εκτελούνται μετά την δημιουργία ενός ερεθίσματος, που ονομάζεται event. Το ερέθισμα αυτό κατά κανόνα δημιουργείται από τον χρήστη που αλληλεπιδρά με το πρόγραμμα/γραφικό περιβάλλον μέσω του ποντικιού και του πληκτρολογίου. Το πρόγραμμα εκτελείται κάθε φορά που θα δοθεί το επόμενο ερέθισμα από τον χρήστη, με συνέπεια να δημιουργηθεί το αντίστοιχo event. Επειδή, το πρόγραμμα υπακούει σε ερεθίσματα, το μοντέλο αυτό είναι γνωστό ως event driven programming (προγραμματισμός με βάση events).

Το παρακάτω σχήμα Α δείχνει το παράδειγμα μίας εφαρμογής swing που αποτελείται από μόνο ένα κουμπί (button). O χρήστης κάθε φορά που πατά το κουμπί με το ποντίκι (αριστερό click) δημιουργείται ένα event του τύπου ActionEvent. To event μπορούμε να επιλέξουμε να το διαχειριστούμε μέσα από ένα αντικείμενο του τύπου event listener, το οποίο παρέχει τον κώδικα που θα εκτελεστεί για το event αυτό. Στο σχήμα Β δίνεται εποπτικά η διαδικασία δημιουργίας αλλά και διαχείρισης του event από τον event listener.

Α. Παράδειγμα γραφικού περιβάλλοντος java/swing B. Διαδικασία δημιουργίας και “πιασίματος” ενός event από ένα αντικείμενο τύπου event listener

Βασικό χαρακτηριστικό του event driven προγραμματισμού είναι ότι δημιουργούμε αντικείμενα και μεθόδους (event listeners) τα οποία δεν γνωρίζουμε αν θα κληθούν και με ποια σειρά θα κληθούν, καθώς αυτό εξαρτάται από τον χρήστη που χρησιμοποιεί το πρόγραμμα. Ο προγραμματιστής κατά κανόνα δεν έχει τον έλεγχο της σειράς εκτέλεσης των μεθόδων που ορίζει.

Το γραφικό περιβάλλον μίας εφαρμογής αποτελείται από αντικείμενα που αντιπροσωπεύουν οντότητες με τις οποίες ο χρήστης μπορεί να αλληλεπιδράσει. Παραδείγματα, τέτοιων οντοτήτων είναι τα buttons, text boxes, textfields, radio buttons, menu items κ.α. Στην παρακάτω εικόνα δίνεται μία απλή εφαρμογή calculator. Κάθε αριθμός ή τελεστής αριθμητικής πράξης είναι αποθηκευμένο σε ένα αντικείμενο τύπου button. Οι ενδιάμεσοι αριθμοί και το αποτέλεσμα της αριθμητικής πράξης εμφανίζεται στο πεδίο κειμένου (textfield) στην κορυφή του παραθύρου.

swing/intro.txt · Last modified: 2020/03/16 10:45 (external edit)