12.6. Άσκηση 6 - [αξιοποίηση γραφικής διεπαφής (GUI)] (έκδοση 2004)

Σχετικά έγγραφα
12.6. Άσκηση 6 - [αξιοποίηση γραφικής διεπαφής (GUI)] (έκδοση 2006)

Η στοίβα (stack) H στοίβα είναι ένας αποθηκευτικός χώρος οργανωµένος κατά τέτοιο τρόπο ώστε να υποστηρίζει δύο βασικές λειτουργίες:

(Logic Gate Simulator)

2.1 Αντικειµενοστρεφής προγραµµατισµός

Εργαστήριο 1-1 η Άσκηση - Ανάλυση

Ανάπτυξη Plugins για το AgentSheets

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

public class ArrayStack implements Stack {

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Προγραµµατισµός Ι Εισαγωγή Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Προγραµµατισµός Ι Νικόλαος Δ. Τσελίκας

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές

ΕΡΓΑΣΤΗΡΙΟ 16. Χρησιμοποιώντας τον Αποσφαλματιστή (Debugger) του Eclipse

Εισαγωγή στους Υπολογιστές

CSD Univ. of Crete Φθινόπωρο Άσκηση 1 Εκφώνηση

Κλάσεις και Αντικείµενα

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

Αντικειμενοστρεφής Προγραμματισμός

Σχηματίζοντας Γραφικές Παραστάσεις για Ημίτονο και Συνημίτονο και Ελέγχοντας Περιορισμούς σε Συστάδες Καρτών Τόμπολας

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Αντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου

ANDROID Προγραμματισμός Εφαρμογών

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΕΞΑΜΗΝΟ

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

Κεφάλαιο VI : Εργαστηριακές ασκήσεις που αφορούν τη δηµιουργία γραφικού περιβάλλοντος χρήστη στη Java.

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

3 Αλληλεπίδραση Αντικειμένων

ΕΡΓΑΣΙΑ 2. Κατασκευάζοντας Ημερολόγια. Ημερομηνία Ανάρτησης: 23/02/2018 Ημερομηνία Παράδοσης: 13/03/2018, 09:00

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

Αντικειμενοστρεφής Προγραμματισμός

ΣΕΛΙ Α 1 ΚΕΦΑΛΑΙΟ 1 - ΑΡΧΙΚΑ

VOICE MODULE Πλακέτα χειρισμού / τηλεφωνητή Ο ΗΓΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. ΟΛΟΚΛΗΡΩΜΕΝΗ ΣΕΙΡΑ ΣΥΣΤΗΜΑΤΩΝ ΣΥΝΑΓΕΡΜΟΥ IDS HELLAS

Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, :00-10:00 π.μ.

HX-TEL 999. ΗΧ-TEL999 rev1_1

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εισαγωγή στο προγραμματιστικό περιβάλλον ANSI

ΕΓΧΕΙΡΙ ΙΟ ΡΥΘΜΙΣΕΩΝ ΓΙΑ ΤΗΝ ΠΡΟΣΒΑΣΗ ΣΕ ΗΛΕΚΤΡΟΝΙΚΟΥΣ ΠΟΡΟΥΣ ΙΚΤΥΟ ΒΙΒΛΙΟΘΗΚΩΝ ΤΟΥ ΙΝΣΤΙΤΟΥΤΟΥ ΘΕΡΒΑΝΤΕΣ

ΗΧ-GD30. Οδηγίες χρήσης και προγραμματισμού. Συσκευή τηλεφωνητή μέσω GSM και PSTN. Εγκατάσταση

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Python. 1η Ομάδα Ασκήσεων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Συλλογές, Στοίβες και Ουρές

Οντοκεντρικός Προγραμματισμός

Mεταγλωττιστές. 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex. Θεωρία

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ GRS-1

HelloApplet. Παύλος Εφραιμίδης Java Applets 1

Θερμοστάτης LTC 530. Οδηγίες Ο θερμοστάτης διαθέτει οθόνη με «LED» φωτισμό, η οποία εμφανίζει την πραγματική θερμοκρασία

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

HX-DG20 TELE HX-DG20 1

Προγραμματιστικό Περιβάλλον

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι

Special edition of the Technical Chamber of Greece on Video Conference Services on the Internet, 2000 WEBPHONE

ΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Παρουσίαση Libreoffice. Βασίλειος Καραβασίλης Μονάδα Αριστείας ΕΛΛΑΚ ΕΤΕΠΗ 27/04/2015

Ask1, Ask2, Ask3. private void jbutton1actionperformed(java.awt.event.actionevent evt) { jlabel1.settext( "You pressed the 1st button" ); }

Η Απάντηση. Ενδεικτικές Απαντήσεις Φύλλου Εργασίας. Μηνύματα. 1. Πληκτρολογήστε την εντολή:

Διαδικασιακός Προγραμματισμός

Η Απάντηση. Φύλλο Εργασίας. Μηνύματα

B. Ενσωμάτωση Ιθαγενών Μεθόδων

Αντικειμενοστρεφής Προγραμματισμός

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

Εργαστήριο 2 - Άσκηση - Ανάλυση

ΠΡΟΓΡΑΜΜΑΤΙΣΤΗΣ ΑΡ ΕΥΣΗΣ ΜΙΑΣ ΣΤΑΣΗΣ ΜΕ ΗΛΕΚΤΡΟΒΑΝΑ ΚΑΙ ΤΡΙΑ ΑΝΕΞΑΡΤΗΤΑ ΠΡΟΓΡΑΜΜΑΤΑ.

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

ΓΡΑΠΤΗ ΕΞΕΤΑΣΗ ΣΤΟ ΜΑΘΗΜΑ "ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΣΧΕ ΙΑΣΜΟΣ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ" ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ ιδάσκων: Β.Βεσκούκης

ΚΕΦΑΛΑΙΟ 1. Εισαγωγή στην Python. 1.1 Εισαγωγή

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++

Μάθημα 5 ο : Μετάδοση Μηνυμάτων

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο

Προγραμματισμός ΙI (Θ)

1. Ξεκινώντας. 1.1 Τι είναι η Java. PDF created with FinePrint pdffactory Pro trial version

Outlook Express-User Instructions.doc 1

GET SDI PORTAL v1. Οδηγός Βοήθειας

Αντικειµενοστρεφής Προγραµµατισµός

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA

1ο μέρος 1. Φτιάχνουμε την πίστα. Μια ενδεικτική πίστα φαίνεται παρακάτω:

Ειδικά Θέματα Προγραμματισμού

Παράδειγμα «Ημίτονο και ζωγραφική!»: Έχει δει στα μαθηματικά τη γραφική παράσταση της συνάρτησης του ημιτόνου; Σας θυμίζει κάτι η παρακάτω εικόνα;

GK6915 FAQ (Συχνές ερωτήσεις) για το Eee Pad TF201

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

XEROX - ΕΛΤΙΟ ΑΣΦΑΛΕΙΑΣ XRX05-008

ΕΡΓΑΣΙΕΣ ΟΝΤΟΚΕΝΤΡΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Τµήµα Πληροφορικής. Δοµές Δεδοµένων - Εργασία 1. Φθινοπωρινό Εξάµηνο Διδάσκων: E. Μαρκάκης. Στοίβες και Ουρές. Οικονοµικό Πανεπιστήµιο Αθηνών

ΗΧ-GD30+ Συσκευή τηλεφωνητή μέσω GSM και PSTN

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι

Τυχαίοι αριθμοί ρίξε μια «ζαριά»

Transcript:

exercise 6new_6 23/2/2005 12.6. Άσκηση 6 - [αξιοποίηση γραφικής διεπαφής (GUI)] (έκδοση 2004) 12.6.1. Περιγραφή Θεωρήστε την γραφική διεπαφή της αριθµοµηχανής των MS Windows. Μια παρόµοια διεπαφή (δες σχήµα 6.1) ορίζεται από την κλάση CalculatorGui. Η διεπαφή αυτή σας δίνεται µε τη µορφή Java κλάσεων σε bytecodes στο αρχείο CalcGuiV1Exer6.zip ή CalcGuiV1Exer6.jar (δες δικτυακό τόπο του βιβλίου). Σχήµα 6.1. Γραφική διεπαφή της έκδοσης 1 του CalculatorGui. Η κλάση CalculatorGui έχει ένα δηµιουργό που δέχεται ένα όρισµα τύπου Operand. Την αναφορά αυτή χρησιµοποιεί το στιγµιότυπο της κλάσης CalculatorGui για να επικοινωνήσει µε το συγκεκριµένο στιγµιότυπο της Operand αποστέλλοντας του κατάλληλα µηνύµατα σε απόκριση της δράσης του χρήστη επί της γραφικής διεπαφής. Στα πλαίσια της άσκησης αυτής θα αναπτύξετε µια πρώτη έκδοση της αριθµοµηχανής χρησιµοποιώντας την γραφική διεπαφή που σας δίνεται. Θα ορίσετε κατάλληλα την κλάση Operand ώστε ο χρήστης να µπορεί να αποδίδει στο στιγµιότυπο της την επιθυµητή τιµή διαµέσου της γραφικής διεπαφής CalculatorGui. 12.6.2. Στόχος Στόχος της άσκησης είναι να έρθετε σε µια πρώτη επαφή µε γραφική διεπαφή (Gui) και να δείτε µε ποιο τρόπο µπορείτε να ενσωµατώσετε στην εφαρµογή σας µια κλάση που σας δίνεται σε bytecodes. Χρόνος εκτέλεσης: Κατά την διάρκεια της µελέτης του κεφαλαίου 8 ή µε την ολοκλήρωση του. Οπωσδήποτε µετά την εκτέλεση της άσκησης 5. 12.6.3. Μεθοδολογία εκτέλεσης Η άσκηση δίνεται σαν ένα σύνολο από δραστηριότητες που πρέπει να εκτελέσετε µόνοι σας. Σε κάθε δραστηριότητα σας δίνονται οδηγίες και βοήθεια ώστε να

Άσκηση 12.6 2 ξεπεράσετε τα δύσκολα σηµεία. Στο τέλος της άσκησης σας δίνονται ενδεικτικές απαντήσεις. ραστηριότητα 1 Αναπτύξτε το πιο απλό πρόγραµµα µε όνοµα Calc.java που θα εµφανίζει στην οθόνη τη γραφική διεπαφή CalculatorGui. Εκτελέστε τις παρακάτω ενέργειες: Αποσυµπιέστε το αρχείο CalcGuiV1Exer6.zip και βάλτε τα αρχεία που περιέχει στο ευρετήριο εργασίας σας. ηµιουργήστε ένα πρόγραµµα µε όνοµα Calc.java που θα εµφανίζει την γραφική διεπαφή στην οθόνη. Ορίστε την κλάση Operand ώστε να περιέχει µόνο τον δηµιουργό της. ραστηριότητα 2 Εκτελέστε το πρόγραµµα που µόλις αναπτύξατε. Στην οθόνη θα δείτε την γραφική διεπαφή της αριθµοµηχανής. Τι θα συµβεί αν πατήσετε το πλήκτρο 1. Αιτιολογήστε. ραστηριότητα 3 Ενσωµατώστε στο πρόγραµµα σας την µέθοδο void adddigit(char ch); Μεταγλωττίστε και εκτελέστε. Πιέστε το πλήκτρο 1. Πιέστε το πλήκτρο 2. Τι παρατηρείτε; Προσέξτε πως δεν βλέπετε την τρέχουσα τιµή του op στο display της γραφικής διεπαφής. Θα επανέλθουµε σε αυτό αργότερα. Αιτιολογήστε τη νέα συµπεριφορά του προγράµµατος σας. Πιέστε το πλήκτρο BackSpace. Τι παρατηρείτε; Το πλαίσιο «Σενάριο Λειτουργίας» περιγράφει ένα σενάριο αλληλεπίδρασης του χρήστη µε την γραφική διεπαφή και τις αλληλεπιδράσεις µεταξύ των αντικειµένων της αριθµοµηχανής για τον υπολογισµό της τιµής της έκφρασης 13 6 + 8 6 - * Σενάριο λειτουργίας Περιγράφουµε στη συνέχεια ένα σενάριο λειτουργίας της αριθµοµηχανής µε την γραφική διεπαφή για τον υπολογισµό της τιµής της έκφρασης 13 6 + 8 6 - * O χρήστης πιέζει το πλήκτρο 1. Αυτό αποστέλλει το µήνυµα adddigit( 1 ) στο

Άσκηση 12.6 3 O χρήστης πιέζει το πλήκτρο 3. Αυτό αποστέλλει το µήνυµα adddigit( 3 ) στο push στην στοίβα, η οποία αποθηκεύει ένα αντικείµενο µε τιµή 13. O χρήστης πιέζει το πλήκτρο 6. Αυτό αποστέλλει το µήνυµα adddigit( 6 ) στο push στην στοίβα, η οποία αποθηκεύει ένα αντικείµενο µε τιµή 6. O χρήστης πιέζει το πλήκτρο +. Αυτό αποστέλλει το µήνυµα operate στο στιγµιότυπο Adder της Calc. O Adder αποστέλλει ένα µήνυµα pop στην στοίβα για να πάρει τον ένα τελεστέο. Στη συνέχεια αποστέλλει ένα ακόµη µήνυµα pop στην στοίβα για να πάρει τον δεύτερο τελεστέο. Τους προσθέτει και αποστέλλει ένα µήνυµα push στη στοίβα για να βάλει µέσα το 19. O χρήστης πιέζει το πλήκτρο 8. Αυτό αποστέλλει το µήνυµα adddigit( 8 ) στο push στην στοίβα, η οποία αποθηκεύει ένα αντικείµενο µε τιµή 8. O χρήστης πιέζει το πλήκτρο 6. Αυτό αποστέλλει το µήνυµα adddigit( 6 ) στο push στην στοίβα, η οποία αποθηκεύει ένα αντικείµενο µε τιµή 6. O χρήστης πιέζει το πλήκτρο -. Αυτό αποστέλλει το µήνυµα operate στο στιγµιότυπο Subtracter της Calc. O Subtracter αποστέλλει ένα µήνυµα pop στην στοίβα για να πάρει τον ένα τελεστέο. Στη συνέχεια αποστέλλει ένα ακόµη µήνυµα pop στην στοίβα για να πάρει τον δεύτερο τελεστέο. Τους αφαιρεί και αποστέλλει ένα µήνυµα push στη στοίβα για να βάλει µέσα το 2. O χρήστης πιέζει το πλήκτρο *. Αυτό αποστέλλει το µήνυµα operate στο στιγµιότυπο Multiplier της Calc. O Multiplier αποστέλλει ένα µήνυµα pop στην στοίβα για να πάρει τον ένα τελεστέο (2). Στη συνέχεια αποστέλλει ένα ακόµη µήνυµα pop στην στοίβα για να πάρει τον δεύτερο τελεστέο (19). Τους πολλαπλασιάζει και αποστέλλει ένα µήνυµα push στη στοίβα για να βάλει µέσα το 38. O χρήστης πιέζει το πλήκτρο Enter. Αυτό αποστέλλει το µήνυµα operate στο στιγµιότυπο ResultPresenter της Calc. O ResultPresenter αποστέλλει ένα µήνυµα pop στην στοίβα για να πάρει τον ένα τελεστέο (38). Στη συνέχεια αποστέλλει ένα µήνυµα στο στιγµιότυπο Display για να εµφανίσει το αποτέλεσµα. ραστηριότητα 4 ώστε την µέθοδο void deletelastdigit(); Ενδεικτικός κώδικας Ο ενδεικτικός κώδικας που σας δίνεται σχολιάζεται στη συνέχεια. public void deletelastdigit(){

Άσκηση 12.6 4 String s =new String(buf); buf = new StringBuffer(s.substring(0,s.length()-1)); } Σχόλια ηµιουργούµε ένα στιγµιότυπο String µε το ίδιο περιεχόµενο µε το αυτό του buf. String s =new String(buf); Για να δηµιουργήσουµε ένα στιγµιότυπο χωρίς τον τελευταίο χαρακτήρα του s του αποστέλλουµε το µήνυµα substring s.substring(0,s.length()-1) Το νέο αυτό στιγµιότυπο χρησιµοποιούµε για να δηµιουργήσουµε ένα νέο στιγµιότυπο StringBuffer και να αναθέσουµε στο buf να δείχνει σε αυτό. buf = new StringBuffer(s.substring(0,s.length()-1)); Τι θα απογίνει το στιγµιότυπο που έδειχνε η αναφορά buf; ραστηριότητα 5 Εκτελέστε το πρόγραµµα που µόλις αναπτύξατε. Ε1. Πατήστε το πλήκτρο C. Τι παρατηρείτε; Αιτιολογήστε. Ενσωµατώστε στην Operand και τις παρακάτω µεθόδους void reset(); void set(double val); Μεταγλωττίστε και εκτελέστε. Ε2. Πατήστε το πλήκτρο C. Τι παρατηρείτε; Αιτιολογήστε. Ε3. Ποιος είναι ο λόγος που ο δηµιουργός της Operand όρισε την µέθοδο set; ραστηριότητα 6 Όταν ο χρήστης ολοκληρώσει τον τελεστέο πατάει το πλήκτρο ENTER για να «µπει» το περιεχόµενο του τελεστέου στην στοίβα. Το πάτηµα του πλήκτρου ENTER έχει σαν αποτέλεσµα την κλήση της µεθόδου complete της Operand. Η µέθοδος αυτή θα πρέπει να βάζει τον τελεστέο σε µια στοίβα. Χρησιµοποιήστε κατάλληλα την κλάση Stack της βασικής βιβλιοθήκης της Java για να γράψετε την µέθοδο complete. Ε1. Ενσωµατώστε στην Operand την συµπεριφορά στο µήνυµα που δέχεται από το πλήκτρο ENTER. void complete();

Άσκηση 12.6 5 Ε2. Εκτελέστε το παραπάνω πρόγραµµα και ελέγξτε την συµπεριφορά του. Πατήστε διαδοχικά τα πλήκτρα 1, 2, 9, backspace, 3, ENTER. Είστε σίγουρος για την ορθή συµπεριφορά του προγράµµατος σας; Τροποποιήστε τον κώδικα έτσι ώστε να ελέγξετε την συµπεριφορά αυτή. ραστηριότητα 7 Η κλάση CalculatorGui που σας δόθηκε έχει ένα data member µε όνοµα display που ορίζεται όπως παρακάτω public static TextField display; Αναφερθείτε στην κλάση TextField της βασικής βιβλιοθήκης για να τροποποιήσετε την κλάση Operand που ορίσατε ώστε να βλέπετε στο display της γραφικής διεπαφής την εκάστοτε τιµή του τελεστέου. Εντοπίστε και αξιοποιήστε την µέθοδο settext. Το data member display έχει οριστεί στην κλάση CalculatorGui σαν data member κλάσης. Είναι η καλύτερη επιλογή; Προτείνατε και υλοποιήστε ένα καλύτερο τρόπο αντιµετώπισης. ραστηριότητα 8 Εκτελέστε την εφαρµογή που αναπτύξατε παραπάνω. Πιέστε το πλήκτρο ΕΝΤΕR. Τι παρατηρείτε; Αιτιολογήστε. Τροποποιήστε το πρόγραµµα σας ώστε να βελτιώσετε την συµπεριφορά του. ραστηριότητα 9 ηµιουργήστε ένα package στο BlueJ και εισάγετε τις παραπάνω κλάσεις. Ελέγξτε βήµα- βήµα τη συµπεριφορά των αντικειµένων στα µηνύµατα που αυτά δέχονται στα πλαίσια εκτέλεσης του προγράµµατος. ραστηριότητα 10 - επέκταση λειτουργικότητας Σας δίνεται ο πηγαίος κώδικας της γραφικής διεπαφής CalculatorGui που χρησιµοποιήσατε παραπάνω. (αρχείο CalcGuiV1Exer6Source.zip) O κώδικας αυτός δεν αξιοποιεί σωστά το περιβάλλον υλοποίησης. Θα κληθείτε να τον βελτιώσετε στην επόµενη δραστηριότητα. Στην φάση αυτή όµως µελετήστε τον και εκτελέστε την παρακάτω ενέργεια. Προσθέστε τα πλήκτρα για τις βασικές πράξεις. ραστηριότητα 11 - βελτίωση πηγαίου κώδικα Προσπαθήστε να δώσετε µια νέα έκδοση για τον πηγαίο κώδικα η οποία αξιοποιεί καλύτερα τα πλεονεκτήµατα του Αντικειµενοστρεφούς προγραµµατισµού.