Page 89 - Linux Inside τ. 11

Linux Inside
89
έστω Toublakia, και πατάμε το Finish. Αν μας ζητηθεί αλλαγή
του περιβάλλοντος εργασίας στο Perspective ανάπτυξης κώ-
δικα Java του Eclipse, απαντούμε θετικά. Στο πλαίσιο του
Package Explorer κάνουμε δεξί κλικ στο φάκελο src του
project και επιλέγουμε από το τοπικό μενού, New, Package.
Στο παράθυρο New Java Package δίνουμε ένα όνομα στο νέο
πακέτο, έστω toublakia, και πατάμε το Finish.
Κάνουμε δεξί κλικ στο πακέτο toublakia και επιλέγουμε στο
τοπικό μενού, New, Other... Στο παράθυρο διαλόγου New επι-
λέγουμε WindowBuilder, Swing Designer, πατάμε το Next, δί-
νουμε όνομα Paixnidi στη βασική κλάση και πατάμε το Finish.
Με δεξί κλικ στο πακέτο toublakia, επιλέγουμε New, Class,
για να δημιουργήσουμε τις βοηθητικές κλάσεις Balaki,
Raketa, Toublaki, αφήνοντας πάντοτε τις προκαθορισμένες
ρυθμίσεις του παραθύρου New Java Class. Εναλλακτικά μπο-
ρούμε να χρησιμοποιούμε τις γραμμές εργαλείων ή το κε-
ντρικό μενού του Eclipse.
Ο πλήρης κώδικας της εφαρμογής παρέχεται στο συνο-
δευτικό DVD του περιοδικού, κατάλληλα οργανωμένος και
σχολιασμένος, ώστε να γίνεται κατανοητή η λειτουργία του σε
κάθε βήμα. Μπορούμε να τον χρησιμοποιήσουμε για μία
πρώτη εκτέλεση και ως βάση για τους μετέπειτα πειραματι-
σμούς μας. Απλά αντιγράφουμε το περιεχόμενο κάθε αρχεί-
ου κειμένου, αντικαθιστώντας τον κώδικα καθεμίας από τις
τέσσερις κλάσεις του applet.
Αν θέλουμε να αρχίσουμε την ανάπτυξη από το μηδέν, κα-
λό είναι να ξεκινήσουμε σχεδιάζοντας πρώτα τη γραφική διε-
παφή. Στο View του editor για την κλάση Paixnidi
(
Paixnidi.java) επιλέγουμε την καρτέλα Design. Στο περιβάλ-
λον σχεδίασης επιλέγουμε με κλικ από την ομάδα Layout της
παλέτας των widget (Palette) το Absolute layout και πάλι με
κλικ το εφαρμόζουμε στο παράθυρο του applet.
Στη συνέχεια, προσθέτουμε από τα Components ένα
JButton, ένα JLabel και, τέλος, από τα AWT Components έναν
καμβά σχεδίασης (Canvas). Ορίζουμε κατάλληλα τις ιδιότητές
των widgets και συνεχίζουμε κανονικά την ανάπτυξη του κώδι-
κά μας.
Κατά την ανάπτυξη κώδικα απαιτείται συχνά η εκτέλεσή του
για την πραγματοποίηση ελέγχων και δοκιμών. Γι’ αυτόν το
λόγο, το Eclipse διαθέτει το Applet Viewer, ώστε να είναι δυ-
νατή η άμεση εκτέλεση ενός applet πριν από τη δημιουργία
της τελικής διανομής, χωρίς τη δημιουργία ιστοσελίδας για τη
φόρτωσή της. Για να εκτελέσουμε το applet του παιχνιδιού
μας μέσω το Applet Viewer, κάνουμε δεξί κλικ στο όνομα του
project και επιλέγουμε Run As, Applet.
Ο κύκλος ζωής ενός applet [1]
Σε ένα applet δεν είναι υποχρεωτικό να ορίσουμε τη μέθο-
δο main() από την οποία ξεκινά η εκτέλεση μίας παραθυρικής
εφαρμογής ή μίας εφαρμογής γραμμής εντολών (τερματικού
χαρακτήρων). Η σειρά εκτέλεσης των μεθόδων ενός applet
διαφέρει από τις άλλες εφαρμογές και βασίζεται στη σειρά
των γεγονότων που λαμβάνουν χώρα κατά τη διάρκεια της
ζωής του. Ας τις εξετάσουμε αναλυτικά.
Όταν φορτώνεται στο φυλλομετρητή μας μία ιστοσελίδα
που περιλαμβάνει ένα applet, τότε φορτώνεται και το ίδιο το
applet. Δημιουργείται δηλαδή στην κύρια μνήμη ένα στιγμιό-
τυπο της κλάσης που ελέγχει το applet (η οποία κλάση κλη-
ρονομεί την υπερκλάση Applet της Java). Μετά την πρώτη
φόρτωση καλείται αυτόματα η μέθοδος init(), για την αρχικο-
ποίησή του applet. Μετά την init() καλείται η μέθοδος start()
για την εκκίνηση της εκτέλεσής του. Αυτό συμβαίνει τόσο με-
τά την πρώτη αρχικοποίηση, όσο και κάθε φορά που ο φυλλο-
μετρητής επιστρέφει στην ιστοσελίδα που περιέχει το συγκε-
κριμένο applet. Το άνοιγμα νέας καρτέλας στο φυλλομετρητή
δεν επηρεάζει τη λειτουργία του applet που συνεχίζεται κανο-
νικά, ανεξάρτητα από το αν η καρτέλα του applet βρίσκεται
στο προσκήνιο και βλέπουμε την εκτέλεσή του.
Όταν φορτώνεται μία νέα ιστοσελίδα, με αποτέλεσμα ο
φυλλομετρητής να πρέπει να εγκαταλείψει αυτήν που περι-
λαμβάνει το applet, καλείται η μέθοδος stop() ώστε να σταμα-
τήσει η εκτέλεσή της και κατόπιν καλείται η μέθοδος destroy()
για την εκκαθάριση του περιβάλλοντος εκτέλεσης του applet.
Η κατάσταση του applet δεν διατηρείται. Όταν επιστρέψουμε
στην ιστοσελίδα του applet, ο φυλλομετρητής αρχικοποιεί και
ξεκινά την εκτέλεση ενός νέου στιγμιότυπου του applet. Το
ίδιο συμβαίνει και κατά την ανανέωση της τρέχουσας ιστοσε-
λίδας. Όταν τερματίζεται η εκτέλεση του φυλλομετρητή, τερ-
Linux Labs - Java
Ο πλήρης κώδικας της εφαρμογής παρέχεται
στο συνοδευτικό DVD του περιοδικού,
κατάλληλα οργανωμένος και σχολιασμένος,
ώστε να γίνεται κατανοητή η λειτουργία του σε
κάθε βήμα.
Εκτέλεση του applet του παιχνιδιού στο Applet Viewer
του Eclipse.
2
Ο κύκλος ζωής ενός applet [2].
3