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

Σχετικά έγγραφα
Εργαστήριο 10 Άσκηση 1 - Ανάλυση

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

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

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

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

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

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

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

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

ΑΛΛΗΛΕΠΙ ΡΑΣΗ ΑΝΘΡΩΠΟΥ ΜΗΧΑΝΗΣ 6 o ΕΡΓΑΣΤΗΡΙO

Week 10: Graphical User Interfaces

Δραστηριότητα 1. Προγραμματίζω τον υπολογιστή (10 ώρες).

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

VK - 04/11/2016- [1]

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

Week 12: GUIs with Swing

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

ΜΑΘΗΜΑ 10 Ο ΟΡΓΑΝΩΣΗ ΤΗΣ Β ΓΙΑ ΧΡΗΣΤΕΣ (NON-EXPERTS) Α. ΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ ΕΠΙΛΟΓΩΝ 1. TOOLS DATA UTILITIES SWITCHBOARD MANAGER YES

App Inventor. Εφαρμογή 7 η. Υπολογισμός Μέσου όρου μαθημάτων

VK -14/10/2016 Σελίς 1

Φύλλο Εργασίας Τίτλος: Εισαγωγική Εφαρμογή

App Inventor. Εφαρμογή 5 η. Σχεδιάζω

Διαγραφή Επιλέγετε Διαγραφή για να διαγράψετε μία ήδη υπάρχουσα διαδικασία εισαγωγής ASCII

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

App Inventor. Εφαρμογή 7 η. Υπολογισμός Μέσου όρου μαθημάτων Επέκταση: Πέρασα ή δεν πέρασα? Version 2

VK -14/10/2016 Σελίς 1

Oδηγίες καταχώρισης ξενοδoχείου..gr

Γενικό Λύκειο Κρουσώνα - Σχολικό έτος Εκπαιδευτικός: Παπαδάκης Σταµάτης

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

ΜΑΘΗΜΑ Στοίχιση Παραγράφων. 2. Εσοχές Παραγράφων ΣΤΟΧΟΙ:

Οπτικός Προγραμματισμός σε NetBeans με Java Swing

Λεπτομέριες τοιχοποιίας Σχεδίαση κάτοψης

Vodafone Business Connect

(3) Από την εργαλειοθήκη επιλέξτε το εργαλείο «ετικέτας (Label)». Δημιουργήστε μια ετικέτα στην φόρμα σας.

Θα αναπτύξουμε μια εφαρμογή που θα λειτουργεί σαν κουμπί πανικού. Η εφαρμογή θα αποτελείται από δύο κουμπιά.

4 η Εργαστηριακή Άσκηση

Report 2 Report. Συσχέτιση Εκτυπώσεων

Αντανάκλαση κειμένου (Text Reflection)

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

SPSS Statistical Package for the Social Sciences

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

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

1. Κατανόηση Και Αλλαγή Μεταξύ Προβολών Εμφάνισης Της Παρουσίασης. 1. Κατανόηση Και Αλλαγή Μεταξύ Προβολών Εμφάνισης Της Παρουσίασης

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

ΔΡΑΣΤΗΡΙΟΤΗΤΑ : ΖΑΡΙΑ

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

Το σκηνικό μας είναι πλέον έτοιμο για εισάγουμε τα υπόλοιπα αντικείμενα του έργου μας.

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

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

Αφού δώσουμε όνομα χρήση και password μπορούμε να επιλέξουμε ημερομηνία εισόδου στο σύστημα, εταιρία και υποκατάστημα

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ A.7.M21 Προγραμματίζοντας με το App Inventor Εισαγωγή

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

Παλέτα Κίνηση. Για να μετακινήσουμε ένα αντικείμενο χρησιμοποιούμε την εντολή ΚΙΝΗΣΟΥ

ΠΩΣ ΑΛΛΑΖΕΤΕ ΤΙΜΟΚΑΤΑΛΟΓΟ ΚΑΙ ΠΡΟΣΦΟΡΕΣ

Γενικό Λύκειο Κρουσώνα - Σχολικό έτος Εφαρμογή δημιουργίας κουίζ. Οπτικό κομμάτι. Διδάσκων : Παπαδάκης Σταμάτης 1

A7.2 Δημιουργία Απλής Γραφικής Εφαρμογής σε Περιβάλλον Scratch

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

ΙΑΤΡΙΚΟ ΕΞΙΤΗΡΙΟ. Σημείωση : Ο ασθενής φεύγει πραγματικά από το κρεβάτι, μόνο όταν το Ιατρικό Εξιτήριο γίνει Διοικητικό από το Γραφείο Κίνησης.

Λειτουργία Εναλλακτικού Σχεδίου σε Β Κατηγορίας

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Χρήση εργαλείων Εικόνων, Εντολών και Ετικετών ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

Εγχειρίδιο Χρήσης Εφαρμογής Συστήματος Διαχείρισης Λογισμικού

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

Οδηγός καταχώρισης σχεδίου δράσης σχολείου στην Ηλεκτρονική Πύλη Επαγγελματικής Μάθησης

Ας κάνουμε μια γάτα να περπατάει στο Scratch 2.0

Ηλεκτρολογικό Σχέδιο στο AutoCAD

Σχεδιασμός Βάσεων Δεδομένων

Διαχείριση Γρήγορης Καταχώρησης Πωλήσεων

2 η Εργαστηριακή Άσκηση

Αποθήκη. Διαχείριση Αποθήκης. Published on PRISMA Win Help - Megasoft (

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

Φύλλο Εργασίας Τίτλος: Υπολογισμός Δείκτη Μάζας σώματος Διάρκεια: 2 ώρες

Ενότητα 14 Γραφικές Παραστάσεις

Διαδικασίας Διαχείρισης Χρηστών. να ακολουθήσει για να αξιοποιήσει τις δυνατότητες της εφαρμογής.

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

Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010

Ιδιότητες αντικειμένων, συγγραφή κώδικα, συντακτικά λάθη

Hotel Manager. Ηλεκτρονικό Σύστημα Διαχείρισης Κρατήσεων. Αναλυτικοί Πίνακες. Απλή Καταχώρηση. Οπτική Απεικόνιση

αντιστοιχίζεται με την εντολή περίμενε 0.5 (120/60=2 χτύποι ανά δευτερόλεπτο). Στην

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

Διαχείριση Έργων- Στόχων

Ολοκληρωμένες Δράσεις προβολής δημοσιότητας για το Δήμο Αρχανών Αστερουσίων Εγχειρίδιο Χρήσης - Παρουσίαση

Εργαστήριο Μελέτης και Σχεδίασης με Χρήση Η/Υ Εγχειρίδιο για την χρήση του SIEMENS NX ΣΤΑΥΡΟΣ ΙΩΑΝΝΗΣ ΓΟΡΑΝΙΤΗΣ

Εξοικείωση με το περιβάλλον δημιουργίας Android εφαρμογών App Inventor. Φτιάχνουμε το πρώτο μας παιγνίδι!

Σχεδίαση και ανάπτυξη δραστηριοτήτων στο προγραμματιστικό περιβάλλον MicroWorlds Pro

Εισαγωγή στο πρόγραμμα Microsoft word 2003

Η ΕΞΕΡΕΥΝΗΣΗ ΤΩΝ WINDOWS (WINDOWS EXPLORER)

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

Γ3.3.Μ7 ΕΠΑΝΆΛΗΨΗ ΜΈΡΟΣ Α: ΈΝΝΟΙΕΣ ΤΙ ΕΊΝΑΙ Η VISUAL BASIC ΤΙ ΜΠΟΡΟΎΜΕ ΝΑ ΚΆΝΟΥΜΕ ΜΕ ΤΗ VISUAL BASIC ΑΝΤΙΚΕΊΜΕΝΑ: ΦΌΡΜΑ ΚΑΙ ΧΕΙΡΙΣΤΉΡΙΑ ΕΤΙΚΈΤΑ LABEL

Διαχείριση Έργων- Στόχων

Vodafone Business Connect

Πίνακας περιεχομένων

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

Δημιουργώντας μια εφαρμογή ζωγραφικής. 2 η Εργασία

Ενότητα 15 Μορφοποίηση της Γραφικής Παράστασης

A3.3 Γραφικά Περιβάλλοντα Επικοινωνίας και Διαχείριση Παραθύρων

Εργαστηριακός Οδηγός. Βάσεις Δεδομένων της Γ' Τάξης ΕΠΑΛ

8.1 Top-Level Swing Containers και Swing Components

Διαχείριση Γρήγορης Καταχώρησης Πωλήσεων

Ας μετονομάσουμε τη γάτα που εμφανίζεται μόλις ανοίγουμε το Scratch. Επιλέγουμε το εικονίδιο Μορφή1 που βρίσκεται στη λίστα αντικειμένων.

Οδηγίες χρήσης Πώς να χρησιμοποιήσετε το FastBanner

Transcript:

Εργαστήριο 5 - Άσκηση - Ανάλυση Εκφώνηση: ηµιουργείστε την εφαρµογή «ιακο ές» σε Java Swing µε χρήση NetBeans, χρησιµο οιώντας τις εικόνες ου θα βρείτε στο moodle και ακολουθώντας τις αρακάτω οδηγίες: 1. Η εφαρµογή θα σχεδιασθεί σε ένα εξωτερικό υ οδοχέα JFrame, ο ο οίος θα έχει τίτλο «Holidays». 2. Το οθετήστε στο frame τα συστατικά ό ως τα βλέ ετε στην αρακάτω εικόνα: Αλλάξτε το text στα TABS µε δεξί click άνω στο κάθε TAB και Edit Text. 3. Στο ρώτο TAB θα αρουσιάσετε τρία Ξενοδοχεία, (α) το AL Arab, (β) το Hilton και (γ) το Ice Hotel. Τα τρία ξενοδοχεία είναι radio buttons. Φροντίστε να ανήκουν στο ίδιο button group και το ρώτο να οριστεί ως selected. Ε ίσης, φροντίστε: a. Να οριστούν κατάλληλα οι εικόνες στις ιδιότητες icon, pressedicon, rollovericon και selectedicon για να εµφανίζεται η κατάλληλη εικόνα όταν εφαρµόζεται η αντίστοιχη λειτουργία, Δρ. Ευκλείδης Κεραμόπουλος Σελίδα 1

b. να ορίσετε ε εξηγηµατικό κείµενο (tooltiptext) όταν το οντίκι µ αίνει µέσα στην εικόνα ώστε να αναφέρει το όνοµα του ξενοδοχείου, και c. να εµφανίζεται στο τέταρτο Tab σε κατάλληλη ετικέτα οιο Ξενοδοχείο ε ιλέχτηκε. Ορίστε τις ιδιότητες ό ως φαίνεται αρακάτω: Το Tab θα έχει την παρακάτω εικόνα: 4. Στο δεύτερο TAB θα αρουσιάσετε τις ε ιλογές ου θα ροτείνονται στον ελάτη ως ροσφορά, δηλαδή αν θα ήθελε να εριλαµβάνετε στο ακέτο ου θα ε ιλέξει (α) ρωινό, (β) βραδινό και (γ) ένα κοντινό ταξίδι. Δρ. Ευκλείδης Κεραμόπουλος Σελίδα 2

Φροντίστε να ενηµερώσετε την κατάλληλη ετικέτα στο τέταρτο TAB µε τις ε ιλογές του ελάτη. Το Tab θα έχει την αρακάτω εικόνα: 5. Στο τρίτο TAB θα αρουσιάσετε τις ε ιλογές ου θα έχει ο ελάτης, σε τύ ο δωµατίου και θα εµφανίζετε την ε ιλογή του σε κατάλληλη ετικέτα στο τέταρτο ΤΑΒ. Ε ίσης, ρογραµµατίσετε το κουµ ί «Show Icon» να δείχνει την κατάλληλη εικόνα ανάλογα µε το ξενοδοχείο και το δωµάτιο ου ε ιλέχτηκε σε ετικέτα στο ίδιο ΤΑΒ. Για να έχουν σταθερό µέγεθος οι εικόνες, α ό τις ιδιότητες της ετικέτας ορίστε στο Layout Horizontal size 120 και Vertical size 100. Τέλος, ορίστε και ε εξηγηµατικό κείµενο στο συγκεκριµένο κουµ ί. Το Tab θα έχει την αρακάτω εικόνα: 6. Το τέταρτο ΤΑΒ θα έχει την αρακάτω εικόνα: Δρ. Ευκλείδης Κεραμόπουλος Σελίδα 3

Σηµείωση: Μέθοδοι ου ιθανώς θα σας φανούν χρήσιµες: isselected() settext(string) Κλάση ImageIcon για ρογραµµατιστικό χειρισµό των εικόνων seticon(imageicon) Ανάλυση και εξήγηση λύσης Βήμα 1: Δημιουργούμε ένα νέο project στο NetBeans με όνομα Askisi7. Βήμα 2: Δημιουργούμε ένα νέο Java αρχείο τύπου JFrame Form με όνομα Ergastirio5. Βήμα 3: Ορισμός Ιδιοτήτων στο JFrame. Ορίζουμε ως τίτλο του JFrame το «Holidays». Βήμα 4: Σε αυτό το βήμα θα γίνει η σχεδίαση της εφαρμογής με βάση την ιεραρχία των συστατικών όπως μας τα δίνει η εκφώνηση. Έτσι, θα χρειαστούμε δύο buttongroup. Προσθέτουμε δύο buttongroup από την παλέτα των συστατικών. Αυτά τοποθετούνται στην ιεραρχία other components, δηλαδή στα αντικείμενα που είναι αόρατα. Στη συνέχεια, θα σχεδιάσουμε την ιεραρχία JFrame. Στο πρώτο επίπεδο της ιεραρχίας βλέπουμε ότι έχει τοποθετηθεί ένα JTabbedPane (το παρατηρούμε στην ιεραρχία με το σύμβολο [JTabbedPane] μετά το όνομα της μεταβλητής του συστατικού jtabbedpane1). Αυτό είναι ένας υποδοχέας που μας δίνει τη δυνατότητα να χωρίζουμε την εφαρμογή σε καρτέλες (tabs). Έτσι, βάζουμε ένα TabbedPane από την παλέτα των Swing Containers και φροντίζουμε να καλύψει όλο το JFrame. Στο επόμενο επίπεδο της ιεραρχίας βλέπουμε ότι υπάρχουν τέσσερα στοιχεία, τα οποία όλα είναι υποδοχείς (Swing Containers) και «κρέμονται» κάτω από το TabbedPane. Το πρώτο από τα τέσσερα στοιχεία είναι ένα JScrollPane. Έτσι, τοποθετώ ένα Scroll Pane στο JFrame για να δημιουργήσω την πρώτη καρτέλα. To JScrollPane διαχειρίζεται τα scrollbars ενός συστατικού. Για να μπορέσουμε να τοποθετήσουμε περισσότερα συστατικά στο JScrollPane θα πρέπει να Δρ. Ευκλείδης Κεραμόπουλος Σελίδα 4

τοποθετήσουμε ένα Panel στο JScrollPane. Το JScrollPane θα διαχειρίζεται τα scrollbars με βάση το Panel και στο Panel θα τοποθετήσουμε όσα συστατικά χρειαζόμαστε. Βάζουμε τη δεύτερη καρτέλα μεταφέροντας ένα Panel από τα Swing Containers στο JFrame φροντίζοντας να αφήσουμε το Panel ψηλά, όταν φαίνονται οι πορτοκαλί διακεκομμένες γραμμές, όπως φαίνεται στην Εικόνα 1. Εναλλακτικά μπορείτε στο Navigator, να κάνετε δεξί click πάνω στο jtabbedpane1 και να επιλέξετε ένα Panel από το μενού «Add From Palette -> Swing Containers -> Panel», όπως φαίνεται στην Εικόνα 2. Αφού προσθέσετε τέσσερις καρτέλες στο TabbedPane, αλλάξτε το τίτλο των καρτελών, όπως φαίνεται στην Εικόνα 3. Αλλάξτε και τα ονόματα των μεταβλητών των τεσσάρων καρτελών για να έχετε το αποτέλεσμα της Εικόνα 4. Εικόνα 1: Τοποθέτηση ενός Panel στο JFrame ως καρτέλα (1 ος τρόπος) Εικόνα 2: Τοποθέτηση ενός Panel στο JFrame ως καρτέλα (2 ος τρόπος) Δρ. Ευκλείδης Κεραμόπουλος Σελίδα 5

Εικόνα 3: Αλλαγή του τίτλου της καρτέλας Εικόνα 4: Η εμφάνιση της σχεδίασης μετά την ονομασία μεταβλητών και τίτλων των καρτελών Στη συνέχεια τοποθετούμε τα υπόλοιπα συστατικά. Έτσι, στην πρώτη καρτέλα τοποθετώ τρία radiobuttons. Στην δεύτερη καρτέλα τρία checkboxes. Στην τρίτη καρτέλα τρία radiobuttons, ένα Button και ένα Label. Και στην τέταρτη καρτέλα τρία Labels. Αλλάζω τις μεταβλητές των συστατικών σύμφωνα με ιεραρχία των συστατικών που μας δίνεται στην εκφώνηση και παρατηρώ το αποτέλεσμα στην Εικόνα 5. Δρ. Ευκλείδης Κεραμόπουλος Σελίδα 6

Εικόνα 5: Η εμφάνιση της σχεδίασης μετά την ονομασία μεταβλητών όλων των συστατικών Βήμα 5: Σε αυτή τη φάση θα ασχοληθούμε με τη διαμόρφωση της πρώτης καρτέλας, δηλαδή της καρτέλας HOTEL. Πρώτα από όλα θα ορίσουμε και για τα τρία radiobutton ως το ίδιο buttongroup, το buttongroup1, δίνοντας κατάλληλη τιμή στην ιδιότητα τους buttongroup. Στη συνέχεια θα ορίσουμε για κάθε radiobutton (για κάθε ξενοδοχείο) τα παρακάτω: Για το jrbalarab: o Στην ιδιότητα selected θα δώσουμε τιμή true. o Στην ιδιότητα icon την εικόνα BurjAlArabHotelBW.jpg. o Στην ιδιότητα pressedicon την εικόνα BurjAlArabHotel.jpg. o Στην ιδιότητα rolloovericon την εικόνα BurjAlArabHotel.jpg. o Στην ιδιότητα selectededicon την εικόνα BurjAlArabHotel.jpg. o Θα διαγράψουμε το κείμενο από την ιδιότητα text. o Θα προσθέσουμε το κείμενο «AL Arab Hotel» στην ιδιότητα tooltiptext. Για το jrbhilton: o Στην ιδιότητα icon την εικόνα hiltonhotelbw.jpg. o Στην ιδιότητα pressedicon την εικόνα hiltonhotel.jpg. o Στην ιδιότητα rolloovericon την εικόνα hiltonhotel.jpg. o Στην ιδιότητα selectededicon την εικόνα hiltonhotel.jpg. o Θα διαγράψουμε το κείμενο από την ιδιότητα text. o Θα προσθέσουμε το κείμενο «Hilton Hotel» στην ιδιότητα tooltiptext. Για το jrbicehotel: o Στην ιδιότητα icon την εικόνα IceHotelBW.jpg. o Στην ιδιότητα pressedicon την εικόνα IceHotel.jpg. o Στην ιδιότητα rolloovericon την εικόνα IceHotel.jpg. Δρ. Ευκλείδης Κεραμόπουλος Σελίδα 7

o o o Στην ιδιότητα selectededicon την εικόνα IceHotel.jpg. Θα διαγράψουμε το κείμενο από την ιδιότητα text. Θα προσθέσουμε το κείμενο «Ice Hotel» στην ιδιότητα tooltiptext. Στην Εικόνα 6, φαίνεται η σχεδίαση μετά την εφαρμογή όλων των παραπάνω αλλαγών του βήματος. Εικόνα 6: Η εμφάνιση της σχεδίασης μετά to βήμα 5 Βήμα 6: Τώρα θα προγραμματίσουμε τα τρία κουμπιά ώστε όταν επιλέγονται να ενημερώνεται μία ετικέτα στην τέταρτη καρτέλα (REPORT) το ξενοδοχείο που έχει επιλεγεί. To γεγονός (event) που θα προγραμματίσουμε είναι το Item->itemStateChanged. Ο κώδικας και στα τρία γεγονότα θα περιέχει μόνο μία εντολή settext στην κατάλληλη ετικέτα της τέταρτης καρτέλας, το jlhotel, όπως φαίνεται στην Εικόνα 7, στις γραμμές 229-239. Επίσης, στο δομητή της τάξης του JFrame, αμέσως μετά το initcomponents θα προσθέσουμε την ίδια εντολή του γεγονότος του πρώτου radiobutton, αυτού δηλαδή που ξεκινά selected, ώστε το κατάλληλο κείμενο να εμφανίζεται στην ετικέτα jlhotel (γραμμή 5). Δρ. Ευκλείδης Κεραμόπουλος Σελίδα 8

Εικόνα 7: Ο κώδικας των γεγονότων των τριών radiobutton της πρώτης καρτέλας Βήμα 7: Πρώτα από όλα ορίζουμε κατάλληλο το κείμενο των τριών checkboxes για να έχει η δεύτερη καρτέλα την εμφάνιση της Εικόνα 8. Εικόνα 8: Η εμφάνιση της σχεδίασης της δεύτερης καρτέλας Δρ. Ευκλείδης Κεραμόπουλος Σελίδα 9

Στη συνέχεια προγραμματίζουμε τα τρία checkboxes ώστε να εμφανίζουν το πακέτο επιλογών που έχει επιλέξει ο πελάτης, στην κατάλληλη ετικέτα jldetails της καρτέλας REPORTS. Για τον προγραμματισμό των checkboxes χρησιμοποιούμαι πάλι το γεγονός Item->itemStateChanged. Στις ενέργειες των τριών checkboxes τοποθετούμαι τον ίδιο κώδικα, όπως φαίνεται στην Εικόνα 9. Σε ένα αλφαριθμητικό (το infodetails) προσθέτουμε το κατάλληλο κείμενο, αν το αντίστοιχο checkbox είναι επιλεγμένο. Έτσι, το αλφαριθμητικό περιέχει το πακέτο επιλογών και το εμφανίζουμε στην ετικέτα jldetails. Στο δομητή της τάξης του JFrame προσθέτουμε την εντολή «jldetails.settext("δεν έχει γίνει επιλογή πακέτου");» για να ενημερωθεί κατάλληλα η ετικέτα jldetails στην εκκίνηση της εφαρμογής. Εικόνα 9: Ο κώδικας των γεγονότων των τριών checkboxes της δεύτερης καρτέλας Βήμα 8: Σε αυτό το βήμα θα διαμορφώσουμε τα τρία radiobuttons στην τρίτη καρτέλα ROOM. Έτσι, θα αλλάξουμε το κείμενο στα τρία radiobuttons, όπως φαίνεται στην Εικόνα 10 και θα ορίσουμε και για τα τρία radiobuttons το ίδιο buttongroup, το buttongroup2. Για να στοιχήσουμε αριστερά τα τρία radiobutton, τα επιλέγουμε και τα τρία μαζί και στη συνέχεια πατάμε το κουμπί «Align left in column» που βρίσκεται στο toolbar ακριβώς πάνω από τον καμβά, όπως φαίνεται στην Εικόνα 10. Το πρώτο radiobutton το ορίζουμε selected. Δρ. Ευκλείδης Κεραμόπουλος Σελίδα 10

Εικόνα 10: Διαμόρφωση των τριών radiobutton Βήμα 9: Προγραμματίζουμε το γεγονός Item->itemStateChanged να ενημερώνει την κατάλληλη ετικέτα στην τέταρτη καρτέλα (REPORT) τον τύπο δωματίου που έχει επιλεγεί. Ο κώδικας και στα τρία γεγονότα θα περιέχει μόνο μία εντολή settext στην κατάλληλη ετικέτα της τέταρτης καρτέλας, το jlroom, όπως φαίνεται στην Εικόνα 11, στις γραμμές 301-311. Επίσης, στον δομητή της τάξης του JFrame, αμέσως μετά το initcomponents θα προσθέσουμε την ίδια εντολή του γεγονότος του πρώτου radiobutton, αυτού δηλαδή που ξεκινά selected, ώστε το κατάλληλο κείμενο να εμφανίζεται στην ετικέτα jlroom. Εικόνα 11: Ο κώδικας των γεγονότων των τριών radiobutton της τρίτης καρτέλας Βήμα 10: Σε αυτό το βήμα θα προγραμματίσουμε το JButton να εμφανίζει την κατάλληλη εικόνα δωματίου ανάλογα με το ξενοδοχείο και τον τύπο δωματίου που έχει επιλεγεί. Πρώτα από όλα αλλάζουμε το κείμενο του κουμπιού σε «Show Icon» και ορίζουμε στην ιδιότητα tooltiptext την τιμή «Παρουσίαση της εικόνας δωματίου του επιλεγμένου ξενοδοχείου». Δρ. Ευκλείδης Κεραμόπουλος Σελίδα 11

Διαγράφουμε το κείμενο της ετικέτας και διαμορφώνουμε το μέγεθος της σταθερό και ειδικότερα ορίζουμε τις ιδιότητες Horizontal size και Vertical size όπως φαίνεται στην Εικόνα 12. Εικόνα 12: Ορισμός των layout ιδιοτήτων της JLRoomIcon ετικέτας Για να χρησιμοποιήσουμε τα αρχεία εικόνων μέσα από εντολές θα πρέπει πρώτα να ορίσουμε κατάλληλα αντικείμενα ImageIcon, όπως φαίνεται στην Εικόνα 13 θα χρειαστεί να γίνει import η βιβλιοθήκη «javax.swing.imageicon». Οι εικόνες θα πρέπει να βρίσκονται στο κατάλογο του project. Αν τις τοποθετήσουμε σε άλλο κατάλογο θα πρέπει να συμπληρώσουμε κατάλληλα και τη διαδρομή του αρχείου εικόνας. Η διαδρομή μπορεί να συμπληρωθεί ως απόλυτη διαδρομή, δηλαδή «C:\Users\user\Desktop\Project\ALArabRoom.jpg» ή ως σχετική με αρχή τον κατάλογο του project, δηλαδή αν η το αρχείο εικόνας είναι μέσα στο source τότε θα πρέπει να συμπληρωθεί «.\src\alarabroom.jpg». Εικόνα 13: Δήλωση αντικειμένων ImageIcon Δρ. Ευκλείδης Κεραμόπουλος Σελίδα 12

Τέλος, προγραμματίζουμε το γεγονός Action->actionPerformed του JButton να εμφανίζει την κατάλληλη εικόνα δωματίου ανάλογα ποιο ξενοδοχείο και ποιο δωμάτιο είναι επιλεγμένο όπως φαίνεται στην Εικόνα 14. Εικόνα 14: Ο κώδικας του γεγονότος του jbutton της τρίτης καρτέλας Εναλλακτική προσέγγιση των γεγονότων Ο προγραμματισμός των τριών γεγονότων των radiobutton της πρώτης καρτέλας, των τριών γεγονότων των checkboxes της δεύτερης καρτέλας και των τριών γεγονότων των radiobutton της τρίτης καρτέλας μπορεί να αντικατασταθεί από ένα γεγονός. Το γεγονός αυτό είναι το Focus->focusGained του Panel jpreport (της τέταρτης καρτέλας). Αν εκεί γραφτεί ο κώδικας της Εικόνα 16, τότε όποτε ο χρήστης επιλέγει να δει την τέταρτη καρτέλα θα γίνεται: έλεγχος ποιο ξενοδοχείο είναι επιλεγμένο και θα εμφανίζεται στην ετικέτα jlhotel (γραμμές κώδικα 356-361), έλεγχος ποιες επιλογές έχει κάνει ο πελάτης και θα εμφανίζεται στην ετικέτα jldetails (γραμμές κώδικα 363-367), και έλεγχος ποιος τύπος δωματίου είναι επιλεγμένο και θα εμφανίζεται στην ετικέτα jlroom (γραμμές κώδικα 369-374). Δρ. Ευκλείδης Κεραμόπουλος Σελίδα 13

Εικόνα 15: Στο jpreport panel το event Focus->focusGained Εικόνα 16: Ο κώδικας του γεγονότος του JPanel της τέταρτης καρτέλας Δρ. Ευκλείδης Κεραμόπουλος Σελίδα 14