Εισαγωγή. Κεφάλαιο 2: Βασικές έννοιες Java Κεφάλαιο 3: Χρήση της Java στις σελίδες σας Κεφάλαιο 4: Οι πρώτες σας μικροεφαρμογές...

Σχετικά έγγραφα
Week 10: Graphical User Interfaces

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #17

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Graphical User Interfaces (GUI) SWING

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13

Σχεδόν όλες οι ιστοσελίδες βασίζονται σε μεγάλο βαθμό σε πίνακες. Για να εισάγουμε έναν πίνακα επιλέγουμε από το μενού Insert->Table.

7. Ανάπτυξη GUI σε Java

Λίγα λόγια από το συγγραφέα Microsoft Word Δημιουργία νέου εγγράφου Το σύστημα Βοήθειας του Word...

Microsoft EXCEL ΛΟΓΙΣΤΙΚΑ ΦΥΛΛΑ ECDL. Περιεχόμενα. Απόκτησε τώρα το δίπλωμα. για να θεωρείσαι Επαγγελματίας! 1 Χρήση της Εφαρμογής.

Περιεχόμενα. Περιεχόμενα...v

Πίνακες HTML. Παναγιώτης Γαλάτης 1ο ΕΠΑΛ Ηρακλείου

Microsoft Excel Κεφάλαιο 1. Εισαγωγή. Βιβλίο εργασίας

Επεξεργασία κειμένου: Word 2003

ηµιουργία ιαλογικών Προγραµµάτων για το Web

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

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: Βάσεις δεδομένων και Microsoft Access Κεφάλαιο 2: Microsoft Access

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 12 : ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ GUI AWT ΚΑΙ

ημιουργία Γραφικού Περιβάλλοντος

Kεφάλαιο 11 Λίστες και Ανάλυση Δεδομένων Kεφάλαιο 12 Εργαλεία ανάλυσης πιθανοτήτων Kεφάλαιο 13 Ανάλυση δεδομένων...

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

Microsoft WORD ΕΠΕΞΕΡΓΑΣΙΑ ΚΕΙΜΕΝΟΥ ECDL. Περιεχόμενα. Απόκτησε τώρα το δίπλωμα. για να θεωρείσαι Επαγγελματίας! 1 Χρήση της Εφαρμογής

Περιεχόμενα. Περιβάλλον ηλεκτρονικού υπολογιστή...9 Επιφάνεια εργασίας...12 Διαχείριση αρχείων...15 Ιοί Η/Υ...21 Διαχείριση εκτυπώσεων...

Βιοϊατρική τεχνολογία

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

5.1.1 Περιγραφή των συστατικών τμημάτων ενός γραφήματος

Ref.: SLWS 1 5Copyright 2005 The European Computer Driving Licence Foundation Ltd Σελίδα 1 από 7

Επεξεργαστής Κειμένου: (Microsoft Word)

1 Εξερεύνηση του Word Επεξεργασία και έλεγχος εγγράφων Αλλαγή της εμφάνισης του κειμένου...171

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

Εργαστηριακή Άσκηση 4 Μορφοποίηση Κειμένου μέσω του

Περιεχόμενα. Πρόλογος... xiii

Οδηγός γρήγορης εκκίνησης

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

α2. Αποθήκευση παρουσίασης με διαφορετικό τύπου ή/και σε διαφορετική θέση/ ή/και με διαφορετικό όνομα

Εργασία 11 η Πίνακες (βασικές ετικέτες, βασικές ιδιότητες) 1. Στο Σημειωματάριο πληκτρολογήστε τον παρακάτω κώδικα:

Γραφήματα. Excel 2003

Δημιουργία ενός κενού πίνακα

Περιεχόμενα. Λίγα λόγια από το συγγραφέα... 7

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Graphical User Interfaces (GUI) SWING

Περιεχόμενα. Πρόλογος...11

Περιεχόμενα. Εισαγωγή στο Word Βασικές μορφοποιήσεις κειμένων Κεφάλαιο 1. Κεφάλαιο 2

ΠΕΡΙΕΧΟΜΕΝΑ. Κεφάλαιο 3: Προσθήκη πλαισίων...65 Τρόπος λειτουργίας των πλαισίων Δημιουργία πλαισιοσυνόλου Χρήση του πάνελ Frames...

Περιεχόµενα. Πρόλογος...15

Πρακτικές συμβουλές κατά την πληκτρολόγηση ., ; :! ( ) " " Άνοιγμα και αποθήκευση εγγράφου Αρχείο, Άνοιγμα. Αρχείο / Αποθήκευση

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

Πληροφορική Τμήμα Σχεδιασμού & Τεχνολογίας Ξύλου & Επίπλου Αντώνιος Καραγεώργος Ευανθία Τσιλιχρήστου. Μάθημα 5 ο Τεχνολογίες Διαδικτύου: HTML I

Εργασία-3: Παρουσίαση Εργασίας. Ομάδα Α. Προετοιμασία Αναφοράς

Πίνακες. ετικέτα <table>

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

Εισαγωγή Κεφάλαιο 1: Εγκατάσταση της Access Κεφάλαιο 2: Βάσεις δεδομένων και δομικά στοιχεία της Access

6 Το μικρό βιβλίο για το ελληνικό Word 2010

Περιεχόμενα. Κεφάλαιο 1 Γνωριμία με το Excel... 9

Περιεχόμενα. 1 Tο βιβλίο "με μια ματιά" Εισαγωγή στη Microsoft Access Γνωριμία με τις βάσεις δεδομένων της Access...

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

Το σύστημα Βοήθειας του Internet Explorer

Περιεχόμενα. Κεφάλαιο 1 Γνωριμία με το Excel...9

Δημιουργία η-μαθήματος με τη. 3 ο Μέρος Εισαγωγή πληροφοριών: δημιουργία ιστοσελίδας

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #18

Προγραµµατισµός ΙΙ Java 2

Περιεχόμενα. Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών Μέρος 2: Χρήση υπολογιστή και διαχείριση αρχείων Πρόλογος...

ΥΠΗΡΕΣΙΕΣ ΔΙΑΔΙΚΤΟΥ Explorer & Outlook 2013

ECDL Module 4 Υπολογιστικά Φύλλα Εξεταστέα Ύλη, έκδοση 5.0 (Syllabus Version 5.0)

Εξεταστέα Ύλη (Syllabus) Έκδοση 5.0

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

Γεωργάκης Αριστείδης ΠΕ20

Διαχείριση Βάσης Δεδομένων (dbadmin)

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

Η γλώσσα HTML. Επιμέλεια: Δέγγλερη Σοφία

Εργαστήριο #12. Βήμα 1 ο. Βήμα 2 ο. Βήμα 3 ο. Βήμα 4 ο.

Ο Οδηγός γρήγορης εκκίνησης

1. Κλικ στην καρτέλα Insert 2. Tables 3. Κλικ Table 4. Σύρουμε το δείκτη του ποντικιού και επιλέγουμε τον επιθυμητό αριθμό γραμμών και στηλών

Μπορούμε να χρησιμοποιήσουμε τις παρακάτω μορφές συντεταγμένων με οποιοδήποτε συνδυασμό θέλουμε. Καρτεσιανές συντεταγμένες

Εισαγωγη στην html. Η δομή μιας ιστοσελίδας (αρχείο html) Η βασική δομή ενός αρχείου html είναι η εξής: <html> <head>

Περιεχόμενα. Πρόλογος 15

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

Μορφοποίηση εικόνων. Εισαγωγή. Στόχος κεφαλαίου

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: PowerPoint Κεφάλαιο 2: Εκκίνηση του PowerPoint... 13

Περιεχόµενα. 1 Tο βιβλίο "µε µια µατιά" Εισαγωγή στη Microsoft Access Γνωριµία µε τις βάσεις δεδοµένων της Access...

ΕΝΟΤΗΤΑ 6: «Microsoft PowerPoint 2007» Κεφάλαιο 6.7: Αναδιάταξη κειμένου και αντικειμένων

Περιεχόμενα. Μέρος 1: Βασικές έννοιες της πληροφορικής Πρόλογος... 11

να ακολουθήσουμε Έναρξη Όλα τα Προγράμματα και να ενεργοποιήσουμε την επιλογή Microsoft Word.

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: Microsoft Excel Κεφάλαιο 2: Η δομή ενός φύλλου εργασίας... 26

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

Πρόλογος... xiii ΜΕΡΟΣ 1 1 Εισαγωγή στο Excel Βασικές λειτουργίες του Excel... 21

3 ο Εργαστήριο Μεταβλητές, Τελεστές

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

Πρακτικές οδηγίες για την Επεξεργασία Κειμένου

Week 12: GUIs with Swing

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ΜΕΡΟΣ 2: Κεφάλαιο 1: Βασικές τεχνικές του Office Κεφάλαιο 2: Εργασία με τα προγράμματα... 13

Σχεδιασμός εκτυπώσεων ERG

Περιεχόμενα. Εισαγωγή στο Word Βασικές μορφοποιήσεις κειμένων Κεφάλαιο 1. Κεφάλαιο 2

6.1 Εισαγωγή. 6.2 Ασφάλεια

Σχεδιασμός εκτυπώσεων ERG

2.1. Εντολές Σχόλια Τύποι Δεδομένων

Περιεχόμενα. Λίγα λόγια από τον συγγραφέα Microsoft Excel Η δομή ενός φύλλου εργασίας... 21

1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ ΜΟΡΦΟΠΟΙΗΣΕΙΣ ΜΟΡΦΟΠΟΙΗΣΕΙΣ ΧΑΡΑΚΤΗΡΩΝ. Μάθημα: Πληροφορική Α' Γυμν. Ενότητα: Επεξεργασία κειμένου

ΕΡΓΑΣΤΗΡΙΟ ΠΛΗΡΟΦΟΡΙΚΗ I. 3o ΕΡΓΑΣΤΗΡΙΟ ΕΠΕΞΕΡΓΑΣΙΑ ΜΕ ΤΟ WORD

Εκτύπωση Γενικού Ημερολογίου

PowerPoint Ένα εργαλείο παρουσίασης

Transcript:

ΠΕΡΙΕΧΟΜΕΝΑ Εισαγωγή... ix Κεφάλαιο 1: Τι είναι η Java;... 1 Ένα σύντομο μάθημα Ιστορίας...2 Γιατί να μάθει κανείς Java;...4 Διαδεδομένοι μύθοι για την Java...5 Τι θα χρειαστείτε...8 Οι διαφορετικές εκδόσεις της Java...9 Κεφάλαιο 2: Βασικές έννοιες Java... 11 Εισαγωγή στη θαυμαστή εικονική μηχανή της Java...12 Ασφάλεια της Java...13 Αρχεία της Java...14 Μπίνγκο ορολογίας...15 Κεφάλαιο 3: Χρήση της Java στις σελίδες σας... 21 Χρήση της ετικέτας APPLET στις σελίδες σας...22 Χρήση της ετικέτας Object στις σελίδες σας...24 Χρήση των ετικετών Object και Embed στις σελίδες σας...27 Εμφάνιση μηνύματος σε φυλλομετρητές που δεν υποστηρίζουν την Java...29 Τοποθέτηση μικροεφαρμογών Java στη σελίδα...31 Εύρεση μικροεφαρμογών στον Ιστό...33 Μεταβίβαση παραμέτρων σε μια μικροεφαρμογή...35 Κεφάλαιο 4: Οι πρώτες σας μικροεφαρμογές... 39 "Γεια σου κόσμε!"...40 Χρήση γραμματοσειρών...42 Ορισμός του χρώματος φόντου...43 Μεταβίβαση παραμέτρων από την HTML στην Java...44 Προσθήκη σχολίων...46 Αλλαγή του στυλ γραφής...47 Αλλαγή χρώματος...48 Κεφάλαιο 5: Αλφαριθμητικά... 49 Αλφαριθμητικές μεταβλητές...50 Περισσότερα για τα αλφαριθμητικά...52 Εύρος (εμβέλεια) μεταβλητών...54 Αλφαριθμητικές μέθοδοι...56 Αριθμοί όλων των τύπων...58 Μετατροπή αλφαριθμητικών σε αριθμητικά και αντίστροφα...61 Μετατροπές μεταξύ αριθμητικών τύπων...63 ΤΥΠΟΓΡΑΦΙΚΟ!Ακαθόριστος σελιδοδείκτης, V

vi Περιεχόμενα Κεφάλαιο 6: Κεφάλαιο 7: Μετατροπή με απόρριψη... 65 Πίνακες αντικειμένων... 67 Αποφάσεις...69 Συνθήκες: η εντολή if... 70 Εντοπισμός λαθών... 73 Περισσότερες συνθήκες: εντολές if/else... 77 Γύρω-γύρω όλοι: χρήση βρόχων... 80 Ένας άλλος βρόχος: while... 82 Ο τελευταίος βρόχος: do/while... 84 Έξοδος από το γύρω-γύρω ενός βρόχου... 86 Η περίπτωση της case... 88 Συνεργασία με το χρήστη...93 Σχεδίαση με το ποντίκι... 94 Σχεδίαση σε δύο διαστάσεις... 97 Ελεύθερη σχεδίαση... 100 "Σύλληψη" πληκτρολογήσεων... 102 Μετακίνηση εικόνων στη σελίδα... 104 Χρήση τροποποιητικών πλήκτρων... 106 Κεφάλαιο 8: Δημιουργία μιας διασύνδεσης χρήστη...109 Κεφάλαιο 9: Προστασία σελίδας με κωδικό πρόσβασης... 110 Καταχώριση και εμφάνιση κειμένου... 113 Εργασία με πλαίσια ελέγχου... 115 Χρήση ραδιοπλήκτρων... 118 Χρήση επιλογών μενού... 121 Δημιουργία μενού γραμματοσειρών με την Java... 123 Χρήση περιοχών κειμένου... 125 Χρήση κυλιόμενων καταλόγων... 128 Θέματα διάταξης...131 FlowLayout: η προεπιλεγμένη διάταξη... 132 Χρήση της διάταξης FlowLayout... 134 Ευρυχωρία για τη μικροεφαρμογή... 136 Χρήση της διάταξης BorderLayout... 138 Χρήση της διάταξης GridLayout... 140 Ένθεση διάταξης... 142 Προσθήκη συστατικών στοιχείων με χρήση φατνωμάτων... 144 Χρήση της διάταξης CardLayout... 146 Χρήση της διάταξης GridBagLayout... 149 Κεφάλαιο 10: Χειρισμός και κίνηση εικόνων...153 Εμφάνιση μιας εικόνας... 154 Εμφάνιση μέρους μιας εικόνας... 156 Σχεδίαση περιγράμματος γύρω από μια εικόνα... 158 ΤΥΠΟΓΡΑΦΙΚΟ!Ακαθόριστος σελιδοδείκτης, VI

Περιεχόμενα vii Εμφάνιση πολλών εικόνων...160 Νήματα και κινούμενες εικόνες...163 Κίνηση εικόνων με χρήση διπλής περιοχής προσωρινής αποθήκευσης...167 Εμφάνιση απεριόριστων εικόνων...170 Έλεγχος της κίνησης των εικόνων...172 Κεφάλαιο 11: Java και JavaScript... 175 Έλεγχος για υποστήριξη Java...176 JavaScript και δημόσιες μέθοδοι της Java...178 Μεταβίβαση πληροφοριών από την JavaScript στην Java...181 Μεταβίβαση πληροφοριών από την Java στην JavaScript...184 Κεφάλαιο 12: Σχεδίαση διασύνδεσης χρήστη με την εργαλειοθήκη Swing... 189 Η πρώτη σας μικροεφαρμογή Swing...190 Ορισμός γραμματοσειρών με την εργαλειοθήκη Swing...192 Πλαίσια ελέγχου της εργαλειοθήκης Swing...194 Ραδιοπλήκτρα της εργαλειοθήκης Swing...197 Ρύθμιση της "όψης και αίσθησης" της σελίδας με την εργαλειοθήκη Swing...200 Κίνηση εικόνων με την εργαλειοθήκη Swing...205 Η εργαλειοθήκη Swing εν δράσει...209 Κεφάλαιο 13: Σελίδες και μικροϋπηρεσίες JavaServer... 217 Η πρώτη σας σελίδα JavaServer...218 Σελίδες JSP και φόρμες...220 Λήψη αποφάσεων με σελίδες JSP...222 Δημιουργία "μπισκότων" με σελίδες JSP...224 Ανάγνωση "μπισκότων" με σελίδες JSP...226 Σελίδες JSP και κώδικας XML...229 Η πρώτη σας μικροϋπηρεσία...231 Δημοσκοπήσεις με μικροϋπηρεσίες...234 Κεφάλαιο 14: Χρήση της Java με "οπτικά" εργαλεία... 243 Προσθήκη ετικετών applet με το Dreamweaver...244 Προσθήκη ετικετών object με το Dreamweaver...247 Προσθήκη ετικετών applet με το GoLive...249 Προσθήκη ετικετών object με το GoLive...251 Κεφάλαιο 15: Τρίλιζα... 253 Μια παρτίδα τρίλιζας...254 Κεφάλαιο 16: Μια απλή αριθμομηχανή... 269 Μια απλή αριθμομηχανή...270 Κεφάλαιο 17: Ιεραρχικά μενού... 277 Ιεραρχικά μενού της Java...278 ΤΥΠΟΓΡΑΦΙΚΟ!Ακαθόριστος σελιδοδείκτης, VII

viii Περιεχόμενα Παράρτημα Α: Πού μπορείτε να μάθετε περισσότερα...293 Η Java στον Ιστό... 294 Ηλεκτρονικά περιοδικά... 297 Ολοκληρωμένα περιβάλλοντα ανάπτυξης (IDE)... 298 Βιβλία για την Java... 300 Ομάδες συζήτησης... 302 Ανάπτυξη σε διαφορετικά υπολογιστικά συστήματα... 303 Παράρτημα Β: Δεσμευμένες λέξεις...305 Δεσμευμένες λέξεις της Java... 306 Παράρτημα Γ: Ιεραρχία αντικειμένων της Java...309 Το πακέτο java.applet... 310 Το πακέτο java.awt... 310 Το πακέτο java.awt.color... 311 Το πακέτο java.awt.datatransfer... 312 Το πακέτο java.awt.dnd... 312 Το πακέτο java.awt.event... 313 Το πακέτο java.awt.font... 313 Το πακέτο java.awt.geom... 314 Το πακέτο java.awt.im... 314 Το πακέτο java.awt.image... 315 Το πακέτο java.awt.image.renderable... 316 Το πακέτο java.awt.peer... 316 Το πακέτο java.awt.print... 317 Το πακέτο java.beans... 317 Το πακέτο java.beans.beancontext... 318 Το πακέτο java.io... 319 Το πακέτο java.lang... 320 Το πακέτο java.lang.ref... 321 Το πακέτο java.reflect... 321 Το πακέτο java.math... 322 Το πακέτο java.net... 322 Το πακέτο java.text... 322 Το πακέτο java.util... 323 Το πακέτο java.util.jar... 323 Το πακέτο java.util.zip... 324 Παράρτημα Δ: Διαφορές μεταξύ των εκδόσεων 1.0, 1.1, 1.2, και 1.3 του πακέτου JDK...325 Το "παλιό" μοντέλο συμβάντων... 326 Ευρετήριο...333 ΤΥΠΟΓΡΑΦΙΚΟ!Ακαθόριστος σελιδοδείκτης, VIII

ΘΕΜΑΤΑ ΔΙΑΤΑΞΗΣ Θα έχετε προσέξει ίσως στα προηγούμενα κεφάλαια ότι, στην Java, τα στοιχεία της διασύνδεσης χρήστη αποφασίζουν μόνα τους για το πού θα εμφανιστούν στο παράθυρο του φυλλομετρητή. Σε αυτό το κεφάλαιο θα δούμε με ποιον τρόπο μπορείτε να αναλάβετε εσείς τον έλεγχο της διασύνδεσης χρήστη χρησιμοποιώντας τις λειτουργίες διαχείρισης διάταξης (Layout- Managers) της Java. ΤΥΠΟΓΡΑΦΙΚΟ 145

132 Κεφάλαιο 9 FlowLayout: η προεπιλεγμένη διάταξη Αν δεν έχετε ορίσει να χρησιμοποιηθεί κάποια λειτουργία διαχείρισης διάταξης (LayoutManager), η Java υποθέτει ότι θέλετε να χρησιμοποιήσετε την απλούστερη από αυτές τις λειτουργίες που ονομάζεται FlowLayout (διάταξη ροής). Στο παράδειγμα της Λίστας 9.1 και της Μικροεφαρμογής 9.1 δημιουργείται ένα σύνολο κουμπιών τα οποία απλώς "ρέουν" όπου βρουν. Για να χρησιμοποιηθεί εξ ορισμού η διάταξη FlowLayout: buttontext = spaces.substring(1,i) "Button #" + i + spaces.substring(1,i); this.add(new Button(buttonText)); Με αυτές τις γραμμές κώδικα σχεδιάζονται στην οθόνη δέκα κουμπιά, όπως φαίνεται στις Εικόνες 9.1 και 9.2. Ε- πειδή δεν έχει οριστεί κάποια συγκεκριμένη διάταξη της λειτουργίας LayoutManager, τα κουμπιά εμφανίζονται στο κέντρο της περιοχής της μικροεφαρμογής. Λίστα 9.1 Εμφάνιση της Μικροεφαρμογής 9.1 στο παράθυρο του φυλλομετρητή. <html> <head> <title>listing 9.1</title> </head> <body bgcolor="white"> <object classid="clsid:8ad9c840-044e-11d1- B3E9-00805F499D93" width="400" height="100" codetype="application/java"> <param name="code" value="applet1.class"> <param name="type" value="application/x-java- applet;version=1.3"> <param name="scriptable" value="false"> <embed type="application/x-java-applet; version=1.3" code="applet1.class" width="400" height="100" scriptable="false" pluginspage= "http://java.sun.com/products/plugin/1.3/ plugin-install.html"> </embed> </object> </body> </html> Μικροεφαρμογή 9.1 Αυτή η μικροεφαρμογή "ρίχνει" στο παράθυρο δέκα κουμπιά διαφόρων μεγεθών. import java.awt.*; import java.applet.*; public class Applet1 extends Applet { public void init() { String spaces = " ",buttontext; setbackground(color.white); for (int i=1; i<=10; i++) { buttontext = spaces.substring(1,i) + "Button #" + i + spaces.substring(1,i); this.add(new Button(buttonText)); ΤΥΠΟΓΡΑΦΙΚΟ 146

Θέματα διάταξης 133 Εικόνα 9.1 Έτσι εμφανίζεται αυτή η μικροεφαρμογή σε έναν υπολογιστή Macintosh... Συμβουλές Για να γίνει ακόμη πιο ξεκάθαρο αυτό το παράδειγμα, προσθέτουμε σε κάθε κουμπί όλο και περισσότερα κενά διαστήματα σε σχέση με το προηγούμενο. Με αυτόν τον τρόπο, τα κουμπιά έχουν όλο και μεγαλύτερο μέγεθος. Θα παρατηρήσατε ότι στο παράδειγμα του υπολογιστή Mac εμφανίστηκαν μόνο επτά από τα δέκα κουμπιά που έπρεπε να εμφανίσει η μικροεφαρμογή. Αυτό συμβαίνει επειδή τα κουμπιά που χρησιμοποιούν τη διασύνδεση Aqua του λειτουργικού συστήματος OS X είναι αρκετά μεγαλύτερα από τα κουμπιά που εμφανίζονται σε άλλα λειτουργικά συστήματα. Ηθικό δίδαγμα: να κάνετε όσο περισσότερες δοκιμές μπορείτε προκειμένου να εξασφαλίζετε ότι οι μικροεφαρμογές σας λειτουργούν σε όσο το δυνατό περισσότερα υπολογιστικά συστήματα. Για να λύσουμε αυτό το πρόβλημα στις υπόλοιπες μικροεφαρμογές αυτού του κεφαλαίου θα αυξήσουμε το ύψος και το πλάτος της περιοχής που δεσμεύουμε για την εμφάνιση κάθε μικροεφαρμογής. Εικόνα 9.2...και με αυτές τις μικροδιαφορές σε ένα PC. ΤΥΠΟΓΡΑΦΙΚΟ 147

134 Κεφάλαιο 9 Χρήση της διάταξης FlowLayout Εναλλακτικά, μπορείτε να ορίσετε ρητώς ότι θέλετε να χρησιμοποιηθεί η διάταξη FlowLayout, κάτι που δίνει στη μικροεφαρμογή λίγο περισσότερο έλεγχο σε ό,τι αφορά την εμφάνιση των συστατικών της στοιχείων. Στη Λίστα 9.2 και τη Μικροεφαρμογή 9.2 μπορείτε να δείτε το παράδειγμα μιας μικροεφαρμογής στην οποία τα στοιχεία της διασύνδεσης χρήστη έ- χουν στοιχιστεί αριστερά. Λίστα 9.2 Αυτό το αρχείο HTML καλεί τη Μικροεφαρμογή 9.2. <html> <head> <title>listing 9.2</title> </head> <body bgcolor="white"> <object classid="clsid:8ad9c840-044e-11d1- B3E9-00805F499D93" width="400" height="200" codetype="application/java"> <param name="code" value="applet2.class"> <param name="type" value="application/x-java- applet;version=1.3"> <param name="scriptable" value="false"> <embed type="application/x-java-applet; version=1.3" code="applet2.class" width="400" height="200" scriptable="false" pluginspage= "http://java.sun.com/products/plugin/1.3/ plugin-install.html"> </embed> </object> </body> </html> Μικροεφαρμογή 9.2 Να πώς μπορείτε να υποχρεώσετε τα κουμπιά να στοιχιστούν αριστερά. import java.awt.*; import java.applet.*; public class Applet2 extends Applet { public void init() { String spaces = " ",buttontext; setbackground(color.white); this.setlayout(new FlowLayout (FlowLayout.LEFT)); for (int i=1; i<=10; i++) { buttontext = spaces.substring(1,i) + "Button #" + i + spaces.substring(1,i); this.add(new Button(buttonText)); ΤΥΠΟΓΡΑΦΙΚΟ 148

Θέματα διάταξης 135 Εικόνα 9.3 Τα ίδια κουμπιά στον υπολογιστή Mac, αυτή τη φορά στοιχισμένα αριστερά. Για να χρησιμοποιήσετε τη διάταξη FlowLayout ρητώς: this.setlayout(new FlowLayout(FlowLayout.LEFT)); Ο καλύτερος τρόπος για να κατανοήσετε αυτή τη γραμμή κώδικα είναι να ξεκινήσετε από τις εσωτερικές παρενθέσεις. Η FlowLayout.LEFT είναι μια σταθερά της Java η οποία πληροφορεί τη μικροεφαρμογή ότι πρέπει να εμφανίσει τα αντικείμενα με αριστερή στοίχιση. Εναλλακτικά, θα μπορούσαμε να χρησιμοποιήσουμε μια από τις σταθερές FlowLayout.RIGHT ή FlowLayout.CENTER για να στοιχιστούν, αντίστοιχα, τα στοιχεία δεξιά ή στο κέντρο. Η σταθερά που ορίζει τη στοίχιση μεταβιβάζεται σε μια τάξη, τη FlowLayout. Κατόπιν, δημιουργείται μια νέα παρουσία αυτής της τάξης (με τη χρήση της λέξης-κλειδιού new) και μεταβιβάζεται στη μέθοδο this.setlayout, η ο- ποία ορίζει τη λειτουργία διαχείρισης διάταξης που θα χρησιμοποιηθεί σε αυτή τη μικροεφαρμογή. Στις Εικόνες 9.3 και 9.4 μπορείτε να δείτε τα κουμπιά με τη νέα τους αριστερή στοίχιση. Εικόνα 9.4 Τα ίδια κουμπιά με αριστερή στοίχιση στα Windows. ΤΥΠΟΓΡΑΦΙΚΟ 149

136 Κεφάλαιο 9 Ευρυχωρία για τη μικροεφαρμογή Εκτός από τον ορισμό της στοίχισης των στοιχείων της διασύνδεσης χρήστη, μπορείτε επίσης να ορίσετε και πόσο χώρο θέλετε να αφήνει η μικροεφαρμογή μεταξύ τους. Όπως και η στοίχιση, η προσθήκη κενού χώρου ορίζεται μόνο μία φορά για τη μικροεφαρμογή και εφαρμόζεται σε κάθε συστατικό της στοιχείο. Το παράδειγμα της Λίστας 9.3 και της Μικροεφαρμογής 9.3 δείχνει μια μικροεφαρμογή με δεξιά στοίχιση και σαφώς μεγαλύτερη ευρυχωρία. Λίστα 9.3 Αυτή η λίστα καλεί τη Μικροεφαρμογή 9.3. <html> <head> <title>listing 9.3</title> </head> <body bgcolor="white"> <object classid="clsid:8ad9c840-044e-11d1- B3E9-00805F499D93" width="400" height="200" codetype="application/java"> <param name="code" value="applet3.class"> <param name="type" value="application/x-java- applet;version=1.3"> <param name="scriptable" value="false"> <embed type="application/x-java-applet; version=1.3" code="applet3.class" width="400" height="200" scriptable="false" pluginspage= "http://java.sun.com/products/plugin/1.3/ plugin-install.html"> </embed> </object> </body> </html> Μικροεφαρμογή 9.3 Αυτή η παραλλαγή της μικροεφαρμογής εμφανίζει τα κουμπιά με δεξιά στοίχιση και αυξημένες αποστάσεις μεταξύ τους. import java.awt.*; import java.applet.*; public class Applet3 extends Applet { public void init() { String spaces = " ",buttontext; setbackground(color.white); this.setlayout(new FlowLayout(FlowLayout. RIGHT,35,5)); for (int i=1; i<=10; i++) { buttontext = spaces.substring(1,i) + "Button #" + i + spaces. substring(1,i); this.add(new Button(buttonText)); ΤΥΠΟΓΡΑΦΙΚΟ 150

Θέματα διάταξης 137 Εικόνα 9.5 Αυτά τα κουμπιά είναι στοιχισμένα δεξιά... Για να ορίσετε τις αποστάσεις στη διάταξη FlowLayout: this.setlayout(new FlowLayout(FlowLayout.RIGHT, 35,5)); Κατά τη δημιουργία της παρουσίας της τάξης FlowLayout είναι δυνατό να μεταβιβαστεί είτε μόνο μία παράμετρος (όπως στο προηγούμενο παράδειγμα) είτε τρεις. Η δεύτερη παράμετρος είναι η οριζόντια απόσταση μεταξύ των συστατικών στοιχείων και η τρίτη είναι η κατακόρυφη απόσταση. Σε αυτό το παράδειγμα, η οριζόντια απόσταση είναι 35 πίξελ και η κατακόρυφη 5. Στις Εικόνες 9.5 και 9.6 μπορείτε να δείτε πώς εμφανίζεται η μικροεφαρμογή σε διαφορετικούς φυλλομετρητές. Συμβουλή Σε αυτό το παράδειγμα, χρησιμοποιήσαμε τη λέξη "συστατικό στοιχείο" για να αναφερθούμε στα στοιχεία μιας διασύνδεσης χρήστη. Αργότερα θα δούμε ότι ένα συστατικό στοιχείο μπορεί να περιλαμβάνει πολύ περισσότερα πράγματα από ένα απλό κουμπί. Εικόνα 9.6...ενώ μεταξύ τους υπάρχει αρκετός χώρος. ΤΥΠΟΓΡΑΦΙΚΟ 151

138 Κεφάλαιο 9 Χρήση της διάταξης BorderLayout Η διάταξη FlowLayout δεν είναι η μοναδική επιλογή που προσφέρει η λειτουργία LayoutManager της Java αλλά είναι η απλούστερη. Η διάταξη BorderLayout (διάταξη περιγράμματος) έχει λίγο περισσότερες δυνατότητες χωρίς να είναι πολύ πιο περίπλοκη. Μια μικροεφαρμογή που χρησιμοποιεί τη διάταξη BorderLayout μπορεί να χειριστεί μέχρι πέντε συστατικά στοιχεία, σε καθένα από τα οποία αποδίδεται μια κατεύθυνση: North (βόρεια), South (νότια), East (ανατολικά), West (δυτικά), ή Center (κέντρο). Τα συστατικά North και South εμφανίζονται με πλάτος όσο ολόκληρης της περιοχής της μικροεφαρμογής και τόσο ύψος όσο είναι αρκετό για την εμφάνιση του ονόματος του κουμπιού. Τα συστατικά East και West εμφανίζονται με τόσο ύ- ψος όσο απαιτείται για να καταλάβουν ολόκληρη την περιοχή της μικροεφαρμογής και πλάτος τόσο όσο χρειάζεται για την εμφάνιση του ονόματος του κουμπιού. Τέλος, το συστατικό στοιχείο Center καταλαμβάνει το χώρο που απομένει. Το παράδειγμα της Λίστας 9.4 και της Μικροεφαρμογής 9.4 δείχνει τη διάταξη BorderLayout σε δράση. Λίστα 9.4 Αυτό το αρχείο HTML εμφανίζει στο παράθυρο τη Μικροεφαρμογή 9.4. <html> <head> <title>listing 9.4</title> </head> <body bgcolor="white"> <object classid="clsid:8ad9c840-044e-11d1- B3E9-00805F499D93" width="400" height="100" codetype="application/java"> <param name="code" value="applet4.class"> <param name="type" value="application/x-java- applet;version=1.3"> <param name="scriptable" value="false"> <embed type="application/x-java-applet; version=1.3" code="applet4.class" width="400" height="100" scriptable="false" pluginspage= "http://java.sun.com/products/plugin/1.3/ plugin-install.html"> </embed> </object> </body> </html> Μικροεφαρμογή 9.4 Ένα απλό παράδειγμα χρήσης της διάταξης BorderLayout. import java.awt.*; import java.applet.*; public class Applet4 extends Applet { public void init() { String[] borders = {"North","West", "Center","East","South"; setbackground(color.white); this.setlayout(new BorderLayout(35,5)); for (int i=0; i<5; i++) { this.add(borders[i], new Button (borders[i] + " Button")); ΤΥΠΟΓΡΑΦΙΚΟ 152

Θέματα διάταξης 139 Εικόνα 9.7 Σε μια μικροεφαρμογή που χρησιμοποιεί τη διάταξη BorderLayout έχετε τη δυνατότητα να καθορίσετε σε ποια από τις πέντε προκαθορισμένες θέσεις θα τοποθετηθεί κάθε συστατικό στοιχείο. Για να χρησιμοποιήσετε τη διάταξη BorderLayout: 1. this.setlayout(new BorderLayout(35,5)); Με αυτή τη γραμμή κώδικα ορίζεται η χρήση της διάταξης BorderLayout της λειτουργίας LayoutManager, με οριζόντιες αποστάσεις 35 πίξελ και κατακόρυφες αποστάσεις 5 πίξελ. 2. this.add(borders[i], new Button(borders[i] + " Button")); Εδώ προσθέτουμε στο παράθυρο πέντε κουμπιά, καθένα σε μια συγκεκριμένη θέση ή κατεύθυνση (η πρώτη παράμετρος) και μοναδικό όνομα (η δεύτερη παράμετρος) ανάλογα με τη θέση του κουμπιού. Στις Εικόνες 9.7 και 9.8 μπορείτε να δείτε πώς εμφανίζεται η μικροεφαρμογή στο παράθυρο μετά την ολοκλήρωσή της. Εικόνα 9.8 Αλλά υπάρχει ο περιορισμός ότι σε κάθε θέση μπορεί να τοποθετηθεί μόνο ένα συστατικό στοιχείο. ΤΥΠΟΓΡΑΦΙΚΟ 153

140 Κεφάλαιο 9 Χρήση της διάταξης GridLayout Μια άλλη επιλογή της λειτουργίας LayoutManager είναι η διάταξη GridLayout (διάταξη πλέγματος). Με αυτή τη διάταξη, τα συστατικά στοιχεία της μικροεφαρμογής εμφανίζονται σε στοιχισμένες γραμμές και στήλες. Το παράδειγμα της Λίστας 9.5 και της Μικροεφαρμογής 9.5 δείχνει πώς μπορεί να χρησιμοποιηθεί η διάταξη GridLayout. Λίστα 9.5 Κλήση της Μικροεφαρμογής 9.5. <html> <head> <title>listing 9.5</title> </head> <body bgcolor="white"> <object classid="clsid:8ad9c840-044e-11d1- B3E9-00805F499D93" width="400" height="100" codetype="application/java"> <param name="code" value="applet5.class"> <param name="type" value="application/x-java- applet;version=1.3"> <param name="scriptable" value="false"> <embed type="application/x-java-applet; version=1.3" code="applet5.class" width="400" height="100" scriptable="false" pluginspage= "http://java.sun.com/products/plugin/1.3/ plugin-install.html"> </embed> </object> </body> </html> Μικροεφαρμογή 9.5 Ένα παράδειγμα χρήσης της διάταξης GridLayout σε πλέγμα 3 επί 3. import java.awt.*; import java.applet.*; public class Applet5 extends Applet { public void init() { setbackground(color.white); this.setlayout(new GridLayout(0,3,20,20)); for (int i=1; i<10; i++) { this.add(new Button(" Button "+i)); ΤΥΠΟΓΡΑΦΙΚΟ 154

Θέματα διάταξης 141 Για να χρησιμοποιήσετε τη διάταξη GridLayout: this.setlayout(new GridLayout(0,3,20,20)); Η διάταξη GridLayout μπορεί να δεχτεί δύο ή τέσσερις παραμέτρους. Οι δύο πρώτες είναι πάντα το πλήθος των γραμμών και το πλήθος των στηλών στις οποίες θα εμφανίσει η μικροεφαρμογή τα στοιχεία της διασύνδεσης. Αν της μεταβιβαστούν τέσσερις παράμετροι, η τρίτη ορίζει τις οριζόντιες αποστάσεις και η τέταρτη τις κατακόρυφες. Μπορείτε να δείτε το όμορφα τακτοποιημένο πλέγμα των κουμπιών μας στις Εικόνες 9.9 και 9.10. Εικόνα 9.9 Τρία κουμπιά ανά γραμμή και ανά στήλη... Συμβουλή Σε αυτό το παράδειγμα, το πλήθος των γραμμών που μεταβιβάζουμε στη διάταξη είναι μηδέν ενώ το πλήθος των στηλών τρεις. Όταν η μία από αυτές τις δύο παραμέτρους είναι μηδέν, η τελική της τιμή υπολογίζεται με βάση την τιμή της άλλης παραμέτρου και το πλήθος των συστατικών στοιχείων που πρέπει να εμφανιστούν στην οθόνη. Εικόνα 9.10...σε απόλυτα στοιχισμένες γραμμές και στήλες. ΤΥΠΟΓΡΑΦΙΚΟ 155