Τμήμα Πληροφορικής και Τηλεπικοινωνιών

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Εισαγωγή στο περιβάλλον εργασίας του
Advertisements

Εισαγωγή στους πίνακες περιεχομένων (ΠΠ) και στη συνέχεια πατήστε το πλήκτρο F5 ή κάντε κλικ στις επιλογές Προβολή παρουσίασης > Από την αρχή για να ξεκινήσει.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
Δημιουργία της πρώτης σας βάσης δεδομένων Access 2013 j και στη συνέχεια πατήστε το πλήκτρο F5 ή κάντε κλικ στις επιλογές Προβολή παρουσίασης > Από την.
Πώς να χρησιμοποιήσετε τον λογαριασμό σας στο Gmail
Εκμάθηση διεπαφής MS Kodu. Δημιουργώ τον Κόσμο Το πρώτο πράγμα που θα φτιάξουμε είναι ο κόσμος. Λογικό, αφού χωρίς κόσμο, πού θα τοποθετούσαμε μετά τα.
Επιμορφωτής: Ονομ/νυμο Επιμορφωτή
Καθηγητής: Δ. Μπουτακίδης
ΓΑΙΑ ΙΙ ΔΙΑΣΥΝΔΕΟΜΕΝΟΙ ΜΙΚΡΟΚΟΣΜΟΙ ΠΟΛΥΜΕΣΩΝ ΓΙΑ ΤΗ ΔΙΑΘΕΜΑΤΙΚΗ ΔΙΕΡΕΥΝΗΣΗ ΤΗΣ ΓΗΣ Περίληψη Το εγχειρίδιο χρήσης παρέχει στον τελικό χρήστη όλες τις απαραίτητες.
Πίνακες.
ΕΝΟΤΗΤΑ 2 – Κεφάλαιο 6: Το Γραφικό Περιβάλλον Επικοινωνίας (Γ.Π.Ε.)
Sketchpad Χρήση του λογισμικού ΕΠΙΜΟΡΦΩΣΗ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΣΤΗΝ ΧΡΗΣΗ ΚΑΙ
Copyright ©: SAMSUNG & Samsung Hope for Youth. Με επιφύλαξη κάθε νόμιμου δικαιώματος Εκπαιδευτικό υλικό Λογισμικό: Δημιουργία εφαρμογών Επίπεδο.
ΕΠΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ – ΜΗΧΑΝΗΣ Εαρινό Εξάμηνο 2007 Παρουσίαση Εργαλείου Ανάπτυξης JBuilder Τσουρού Σταυρούλα, ΑΜ 708 Μαδεμλής Ιωάννης, ΑΜ 669.
Γυμνάσιο Νέας Κυδωνίας
Microsoft Excel 4.2 Κελιά Κίκα Χρυσοστόμου.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 11: Intro to Applets Εβδομάδα 11: Εισαγωγή στα Applets.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 10: Graphical User Interfaces Εβδομάδα 10: Εισαγωγή στα Γραφικά Περιβάλλοντα.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
Δημιουργία του δικού σας χάρτη στο
Γραφικά Ενδιάμεσα Χρήστη στην Java
IT-SKILLS Διάλεξη Παρουσιάσεις (PowerPoint)
Βάσεις Δεδομένων Μάθημα 4.
Εργαστήριο Εφαρμοσμένης Πληροφορικής
Μποχρίνη Σταυρούλα ΑΜ:3173 Σταθόπουλος Αναστάσιος ΑΜ:3220.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING Επισκόπηση.
ΕΝΟΤΗΤΑ 2 – Κεφάλαιο 6: Το Γραφικό Περιβάλλον Επικοινωνίας (Γ.Π.Ε.)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
ΤΗΣ ΦΟΙΤΗΤΡΙΑΣ : ΤΣΑΛΤΑ ΑΝΑΣΤΑΣΙΑ Α.Μ. : 30920
Γρήγορη αναφορά για © 2012 Microsoft Corporation. Με την επιφύλαξη κάθε νόμιμου δικαιώματος. Lync Web App Συμμετοχή σε σύσκεψη Lync με ήχο από τον υπολογιστή.
ΑΝΑΠΤΥΞΗ ΤΑΞΙΝΟΜΗΤΗ ΗΛΕΚΤΡΟΝΙΚΗΣ ΑΛΛΗΛΟΓΡΑΦΙΑΣ ΜΑΛΕΖΑ ΣΟΦΙΑ ΑΕΜ:765.
Εργασία με παράθυρα.
Microsoft PowerPoint Powerpoint Κίκα Χρυσοστόμου.
Γρήγορη αναφορά για την εφαρμογή © 2013 Microsoft Corporation. Με επιφύλαξη κάθε νόμιμου δικαιώματος. Η αρχική οθόνη του Lync Η αρχική οθόνη του Lync διαθέτει.
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
XERTE TUTORIAL - ΣΗΜΕΙΩΣΕΙΣ ΕΡΓΑΣΤΗΡΙΟΥ ΘΜΕΛ ΣΤ. ΔΗΜΗΤΡΙΑΔΗΣ Xerte Interaction – Διάδραση Θεωρίες Μάθησης & Εκπαιδευτικό Λογισμικό Σημειώσεις Εργαστηρίου.
Γρήγορα αποτελέσματα με την Εφαρμογή Lync Windows Store Lync 2013.
ΕΜΠΙΣΤΕΥΤΙΚΟ. Η διανομή επιτρέπεται μόνο σε Συνεργάτες με τον όρο μη κοινοποίησης. Η Microsoft δεν παρέχει καμία εγγύηση, ρητή ή σιωπηρή. © 2012 Microsoft.
Applets Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη δυνατότητα προβολής γραφικών και τη δυνατότητα υλοποίησης ενός γραφικού.
Οδηγίες συμπλήρωσης της φόρμας 3 Προθεσμία συμπλήρωσης μέχρι και 16 Ιουνίου.
Διαχείριση γεγονότων (events) Γεγονότα: Κλήσεις που παράγονται από γραφικά στοιχεία (Components) π.χ. click ποντικιού, μετακίνηση ποντικιού Ακρόαση-Διαχείριση.
Microsoft Excel 4.3 Διαχείριση Φύλλων Εργασίας Κίκα Χρυσοστόμου.
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
Εξομοιωτής Ψηφιακών Κυκλωμάτων
ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ “Διαλογικό διδακτικό πρόγραμμα ανώτερων μαθηματικών”
ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΣΕΡΡΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ Τμήμα Μηχανικών Πληροφορικής ΤΕ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Κατασκευή Ιστοσελίδας Χρηματοοικονομικού.
ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ 1 ο ΕΡΓΑΣΤΗΡΙΟ: WINDOWS XP ΚΑΘΗΓΗΤΗΣ: ΓΡΗΓΟΡΙΟΣ Ν. ΚΑΡΑΤΑΣΙΟΣ.
ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ 2 ο ΕΡΓΑΣΤΗΡΙΟ: Μενού,Εντολές και Παράθυρα Διαλόγου Καθηγητής: Γρηγόριος Νικ. Καρατάσιος.
ΜΑΘΗΜΑ: ΣΥΓΧΡΟΝΟ ΛΟΓΙΣΜΙΚΟ ΟΡΓΑΝΩΣΗ ΓΡΑΦΕΙΟΥ 5 ο ΕΡΓΑΣΤΗΡΙΟ: ΕΓΚΑΤΑΣΤΑΣΗ ΕΚΤΥΠΩΤΩΝ ΚΑΘΗΓΗΤΗΣ: ΓΡΗΓΟΡΙΟΣ Ν. ΚΑΡΑΤΑΣΙΟΣ.
Γραφικά με Java 1 Διάλεξη 7Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο
Πληροφοριακά Συστήματα Διοίκησης MIS
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΠΡΟΧΩΡΗΜΕΝΕΣ ΤΕΧΝΙΚΕΣ
Java DataBase Connectivity
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΠΡΟΧΩΡΗΜΕΝΕΣ ΤΕΧΝΙΚΕΣ
Power Point (Συνέχεια).
ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΣΥΝΟΠΤΙΚΗ ΠΑΡΟΥΣΙΑΣΗ POWERPOINT
Web Services στη C# Εργαστήριο 3
Swing II Εβδομάδα Νο. 6.
Γραφικό Περιβάλλον Εργασίας H/Y
ΕΠΕΞΕΡΓΑΣΙΑ ΔΕΔΟΜΕΝΩΝ ΜΕ ΛΟΓΙΣΤΙΚΑ ΦΥΛΛΑ
Τρόπος προσαρμογής του Microsoft SharePoint Τοποθεσία Web με σύνδεση
ΠΡΟΓΡΑΜΜΑ ΕΠΙΜΟΡΦΩΣΗΣ Β΄ΕΠΙΠΕΔΟ ΓΙΑ ΠΕ03
Άνοιγμα/κλείσιμο Υπολογιστή
Σημειώσεις : Μιχάλης Φίλης
Φόρμες Φόρμες χρησιμοποιούνται για να δημιουργήσουμε ένα φιλικό περιβάλλον για την διαχείριση των δεδομένων της βάσης. Επίσης δίνεται η δυνατότητα δημιουργίας.
Λειτουργικά Συστήματα
Week 10: Graphical User Interfaces
Επικοινωνίας Java με Swing
Μεταγράφημα παρουσίασης:

Τμήμα Πληροφορικής και Τηλεπικοινωνιών Γραφικά με Java Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 1

Τμήμα Πληροφορικής και Τηλεπικοινωνιών Περιεχόμενα Γραφική Διεπαφή Χρήστη awt, swing Βασικές Τάξεις – Παραδείγματα Διαχείριση Θέσης Αντικείμενων Διαχείριση Συμβάντων (listeners) Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 2

Γραφική διεπαφή χρήστη Γραφική Διεπαφή Χρήστη (Graphical User Interface - GUI) είναι ένας απλός, εύχρηστος και γρήγορος τρόπος επικοινωνίας ανθρώπου και υπολογιστή. Η σημερινή διάδραση με τους υπολογιστές γίνεται πλέον μέσω γραφικών διεπαφών: MacOS, Linux, Windows…. Το GUI αφαιρεί την πολυπλοκότητα από την διαδικασία επικοινωνίας του χρήστη με τον υπολογιστή η οποία όμως μεταφέρεται στον προγραμματιστή: Σχεδιασμός και υλοποίηση διεπαφής Σχεδιασμός και υλοποίηση μηχανισμών ανάδρασης Όλα τα παραπάνω πρέπει να υλοποιηθούν «μη γραμμικά» Δεν υπάρχει συγκεκριμένος αριθμός μονοπατιών εξέλιξης του προγράμματος Η εφαρμογή πρέπει να έχει την ικανότητα να «δημιουργεί» τα μονοπάτια εκτέλεσης Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 3

Βασικές ιδέες λειτουργίας Ο πηγαίος κώδικας αποτελείται από υποτμήματα Ανάλογα με τις κινήσεις του χρήστη χρησιμοποιείται το αντίστοιχο τμήμα Πλαίσιο διαλόγου με «Ναι» - «Όχι» Αναμονή για τον χρήστη να επιλέξει την απάντηση και διαφορετικό αποτέλεσμα σε κάθε περίπτωση Νήμα εκτέλεσης Κώδικας εφαρμογής Κώδικας Εφαρμογής 1 Κώδικας Εφαρμογής n … Διαχειριστής Συμβάντων Συμβάν (πάτημα πλήκτρου, κλικ….) Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 4

Abstract Window Toolkit - AWT To AWT ανήκει στο Core Java API, δηλαδή αποτελεί ένα από τα πρώτα βασικά δομικά στοιχεία της γλώσσας (java.awt.*). Υλοποιεί την διεπαφή ανάμεσα σε μια java εφαρμογή και το λειτουργικό σύστημα Η εμφάνιση της ίδιας εφαρμογής διαφέρει ανάμεσα στα λειτουργικά συστήματα, καθώς οι λειτουργίες του πακέτου υλοποιούνται με διαφορετικό τρόπο Προσφέρει τάξεις για μικρό αριθμό αντικειμένων

Τμήμα Πληροφορικής και Τηλεπικοινωνιών javax.swing Η βιβλιοθήκη swing κληρονομεί και επεκτείνει την βιβλιοθήκη awt. Είναι υλοποιημένη εξ’ ολοκλήρου σε Java Cross platform compatibility Ίδια εμφάνιση (εφόσον απαιτηθεί από τον προγραμματιστή) Περιέχει περισσότερα γραφικά αντικείμενα Ευκολότερο στην χρήση Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 6

Σύνδεση των δύο πακέτων Το swing κληρονομεί και εξειδικεύει/ επεκτείνει τις τάξεις του AWT Σε πολλές εφαρμογές χρησιμοποιούνται και τα δύο παράλληλα Συγκριτική αποτίμηση: http://dn.codegear.com/el/article/26970 Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 7

Βασικά τμήματα διεπαφής JFrame: Το παράθυρο μέσα στο οποίο θα υλοποιηθεί η γραφική διεπαφή μας. JPanel: Ο χώρος του JFrame μέσα στον οποίο θα εμφανίσουμε στοιχεία της διεπαφής μας. Γενικά το JFrame είναι το παράθυρο της εφαρμογής, ενώ το JPanel το ενεργό τμήμα του, δηλαδή ο χώρος που περιέχει την διεπαφή (κουμπιά, λίστες…) Η αντιστοιχία JPanel με JFrame (ή Panel με Frame γενικότερα) είναι N-1, δηλαδή ένα Frame μπορεί να περιέχει περισσότερα του ενός Panel. Εξ’ ορισμού το Frame περιέχει ένα Panel καθώς και κατάλληλη μέθοδος πρόσβασης και διαχείρισης. Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 8

Βασικές Τάξεις - Παραδείγματα Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 9

Τμήμα Πληροφορικής και Τηλεπικοινωνιών JComponent Μια από τις βασικότερες τάξεις του πακέτου swing Οι περισσότερες τάξεις κληρονομούν και επεκτείνουν την συγκεκριμένη. Είναι τάξη container και μαζί με τις JFrame, JDialog και JApplet αποτελούν τις ανώτερες ιεραρχικά τάξεις του πακέτου Βασικές Μέθοδοι: get/setName() : Ορίζει/ Επιστρέφει το όνομα του component get/setSize() : Ορίζει / Επιστρέφει το μέγεθος του component get/setMaximumSize() : Ορίζει / Επιστρέφει το μέγιστο επιτρεπόμενο μέγεθος get/setMinimumSize() : Ορίζει / Επιστρέφει το ελάχιστο επιτρεπόμενο όριο getWidth() : Επιστρέφει το πλάτος του component getHeight() : Επιστρέφει το ύψος του component getX() : Επιστρέφει την τιμή του Χ (πάνω αριστερό άκρο του component) getY() : Επιστρέφει την τιμή του Y (πάνω αριστερό άκρο του component) Όλες οι κλάσεις γραφικών έχουν σημαντικό αριθμό μεθόδων. Εδώ παρουσιάζεται ένα πολύ μικρό υποσύνολό τους. Για περισσότερες λεπτομέρειες ανατρέξτε στην τεκμηρίωση http://docs.oracle.com/javase/6/docs/api/ Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 10

Τμήμα Πληροφορικής και Τηλεπικοινωνιών JFrame Η κλάση JFrame είναι η swing υλοποίηση της τάξης Frame. Μέσω της Frame ορίζεται το παράθυρο της εφαρμογής. Κληρονομεί μεθόδους από την τάξη Component συνεπώς έχει ομοιότητες με την JComponent Βασικές μέθοδοι: JFrame(String name): Κατασκευάζει ένα παράθυρο με τον προσδιοριζόμενο τίτλο. getContentPane: Επιστρέφει το Panel, δηλαδή τον χώρο, μέσα στο οποίο θα σχεδιαστούν τα γραφικά στοιχεία του Frame setDefaultCloseOperation(int i): Ορίζει την συμπεριφορά του Frame όταν πατηθεί το X setVisible(boolean s): Ορίζει αν το Frame είναι εμφανές ή όχι setResizable(boolean s): Ορίζει την συμπεριφορά του Frame όταν πατηθεί το Με τις μεθόδους ορισμού μέγιστου και ελάχιστου μεγέθους προσδιορίζεται η εμφάνιση του Frame σε κάθε περίπτωση Παράμετροι εισόδου στην μέθοδο setDefaultCloseOperation: DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE, DISPOSE_ON_CLOSE EXIT_ON_CLOSE Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 11

Τμήμα Πληροφορικής και Τηλεπικοινωνιών JPanel To JPanel είναι η τάξη στην οποία προστίθενται τα αντικείμενα που θέλουμε να εμφανίσουμε στην διεπαφή μας. Η βασική μέθοδος πρόσθεσης αντικειμένων είναι η add (Component c) Το πώς εμφανίζονται τα αντικείμενα στο περιβάλλον ορίζεται από το Layout Ο τρόπος συνδυασμού των κλάσεων και η διαδικασία υλοποίησης φαίνονται στα παρακάτω σχήματα (αριστερά και δεξιά αντίστοιχα) : Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 12

Τμήμα Πληροφορικής και Τηλεπικοινωνιών JButton To JButton είναι η πιο απλή και πλέον χρησιμοποιούμενη τάξη του πακέτου. Είναι η απλή υλοποίηση ενός κουμπιού! Βασικές μέθοδοι: JButton(String s): Δημιουργεί ένα κουμπί με συμβολοσειρά s Μέθοδοι προσδιορισμού μεγέθους και θέσης στον χώρο κληρονομούνται από το JComponent addActionListener(ActionListener l): Προσθέτει έναν διαχειριστή συμβάντων στο κουμπί. Ο διαχειριστής προσδιορίζει τον τρόπο αντίδρασης της εφαρμογής στο πάτημα του κουμπιού. Εμφάνιση του αντικειμένου στο παράθυρο: Ορισμός βασικών παραμέτρων του κουμπιού. Πρόσβαση στον χώρο περιεχομένου (getContentPane()) του Frame Προσθήκη σε αυτόν του κουμπιού. Εμφάνιση του Frame. Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 13

Τμήμα Πληροφορικής και Τηλεπικοινωνιών Παράδειγμα 1 Δημιουργούμε ένα JFrame και προσθέτουμε σε αυτό ένα JButton. Imports: JButton, JFrame, Dimensions, Panel Η τάξη μας κληρονομεί και επεκτείνει την τάξη JFrame Κλήση στον constructor της JFrame Δεν θέλουμε διαχειριστή τοποθέτησης των αντικειμένων Συμπεριφορά κατά την χρήση του X Ορισμός μεγέθους, αρχικού, μέγιστου και ελάχιστου Τοποθέτηση του αντικειμένου στον χώρο του Frame Ορισμός συμβολοσειράς Πρόσβαση στο panel του TestFrame και προσθήκη σε αυτό του κουμπιού Εμφάνιση του Frame Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 14

Τμήμα Πληροφορικής και Τηλεπικοινωνιών Menus (I) Είναι οι τάξεις εκείνες που μας επιτρέπουν την δημιουργία των παραθυρικών μενού διαχείρισης. JMenuBar JMenu JMenuItem JSeparator Δημιουργία menus: Ορίζουμε αρχικά τα αντικείμενα των menus (JMenuItem) Τα χωρίζουμε σε λογικά υποσύνολα (JMenu) Τα επιμέρους JMenu τοποθετούνται σε ένα JMenuBar Ένα JMenu μπορεί να περιέχει και άλλα JMenu (pop up υπό-λίστες) Το JSeparator χωρίζει αντικείμενα ενός μενού JMenuBar JMenu JMenuItem JSeparator setEnabled(false) setEnabled(true) setText(“Replace”) Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 15

Τμήμα Πληροφορικής και Τηλεπικοινωνιών Menus (II) Η τάξη JMenuBar δεν τοποθετείται μέσα στον ενεργό χώρο του JFrame αλλά αποτελεί ξεχωριστό τμήμα του, δηλαδή είναι κομμάτι της παραθυρικής εφαρμογής Μέθοδος JFrame: setJMenuBar(JMenuBar bar) H μέθοδος setEnabled που εμφανίζεται σε όλα τα αντικείμενα που υπάρχουν σε ένα JMenuBar επιτρέπει την ενεργοποίηση ή απενεργοποίησή τους ανάλογα με τις ανάγκες τις εφαρμογής H μέθοδος add του JMenu επιτρέπει την προσθήκη είτε JMenuItem ή JMenu. Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 16

Τμήμα Πληροφορικής και Τηλεπικοινωνιών Παράδειγμα 2 Θα δημιουργήσουμε το menu του PowerPoint. Θα αναπτύξουμε πλήρως την περίπτωση File αγνοώντας τις συντομεύσεις του πληκτρολογίου. Απενεργοποίηση των επιλογών Save As και View Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 17

Τμήμα Πληροφορικής και Τηλεπικοινωνιών JTextField JLabel To JTextField είναι η τάξη που επιτρέπει την εισαγωγή κειμένου μέσω της γραφικής διεπαφής: set/getColumns: ορίζει/επιστρέφει τον αριθμό των στοιχείων που χωράνε σε ένα JTextField. set/getText: ορίζει/επιστρέφει το κείμενο που εμφανίζεται στο JTextField. Οι μέθοδοι τοποθέτησης στον χώρο καθώς και προσδιορισμού μεγέθους είναι ίδιες με πριν. To JLabel είναι η τάξη που επιτρέπει την εμφάνιση κειμένου (περιγραφικό κείμενο δίπλα σε πεδία κειμένου) στην διεπαφή. set/getText: ορίζει/επιστρέφει το κείμενο που εμφανίζεται στο JLabel. set/getIcon: ορίζει/επιστρέφει το εικονίδιο που χρησιμοποιεί το JLabel. Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 18

Τμήμα Πληροφορικής και Τηλεπικοινωνιών Παράδειγμα 3 Υλοποιούμε το σχήμα της προηγούμενης διαφάνειας. Τροποποιήστε κατάλληλα το JFrame του αρχικού παραδείγματος ώστε να εμφανίζονται σωστά τα δεδομένα. Μέγεθος του JLabel και σημείο εμφάνισης στον χώρο Μέγεθος του JTextField και σημείο Προσθήκη στο παράθυρο Το πάχος των δύο αντικειμένων είναι ίδιο Η συντεταγμένη y είναι Ίδια και για τα δύο Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 19

Τμήμα Πληροφορικής και Τηλεπικοινωνιών JTextArea To JTextArea είναι μια τάξη που επιτρέπει την δημιουργία πεδίων εισαγωγής κειμένου (σημαντικού μεγέθους) στην γραφική διεπαφή Σε γενικές γραμμές έχει παρεμφερή διαχείριση με το JTextField. Προσφέρει ένα σύνολο μεθόδων για διαχείριση κειμένου append(String s): Προσθήκη της συμβολοσειράς s στο τέλος του ήδη υπάρχοντος κειμένου setLineWrap(boolean): Δυνατότητα αναδίπλωσης της εισαγόμενης συμβολοσειράς getLineWrap(): Αν είναι ενεργοποιημένη η παραπάνω δυνατότητα getLineCount(): Ο αριθμός των γραμμών που περιέχονται στο JTextField setEditable(boolean): Αν μπορεί ο χρήστης να αλλάξει το περιεχόμενο του JTextArea Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 20

Τμήμα Πληροφορικής και Τηλεπικοινωνιών Παράδειγμα 4 Σαν τελευταία εφαρμογή σχεδιάζουμε ένα παράθυρο στο οποίο στην ίδια ευθεία θα εμφανίζονται ένα JLabel, ένα JTextField και ένα JButton. Ο χρήστης θα πρέπει να συμπληρώσει κατάλληλα το πεδίο και να πατήσει το κουμπί. Οι οδηγίες θα δίνονται στο JTextArea που θα εμφανίζεται ακριβώς από κάτω με την μορφή βοήθειας. Το περιεχόμενο της βοήθειας δεν θα πρέπει να μπορεί να αλλαχθεί. Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 21

Διαχείριση θέσης αντικειμένων Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 22

Διαχείριση θέσης αντικειμένων Σε αντίθεση με τις απόλυτες συντεταγμένες που είδαμε προηγουμένως, η Java δίνει την δυνατότητα η τοποθέτηση των αντικειμένων στα παράθυρα να γίνεται αυτόματα μέσω ειδικών τάξεων, των διαχειριστών τοποθέτησης (Layout Manager) FlowLayout Είναι ο εξ’ορισμού διαχειριστής τοποθέτησης αντικειμένων Τοποθετεί τα αντικείμενα το ένα δίπλα στο άλλο σε όλο το μήκος το παραθύρου. Ακολούθως περνά στην επόμενη σειρά κ.λ.π. Τα αντικείμενα είναι απολύτως ευθυγραμμισμένα. GridLayout Διαιρεί τον χώρο του παραθύρου με ένα πλέγμα nxn Η τοποθέτηση των αντικειμένων ξεκινά από το πλέον αριστερό άκρο του πλέγματος και κατευθύνεται προς τα δεξιά. Όταν τελειώσουν τα κελιά της πρώτης γραμμής περνά στην δεύτερη κ.λ.π. BorderLayout Διαιρεί τον χώρο στα σημεία του ορίζοντα! Το κεντρικό κομμάτι καταλαμβάνει τον μεγαλύτερο χώρο ενώ όλα τα υπόλοιπα τοποθετούνται δεξιά, αριστερά, πάνω και κάτω αυτού. Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 23

Παράδειγμα FlowLayout Ορισμός βασικών παραμέτρων του παραθύρου Ορισμός ενός νέου Panel με το οποίο θα δουλέψουμε (ΟΧΙ το default) Ορισμός του Layout που θέλουμε να χρησιμοποιήσουμε. Η παράμετρος ορίζει τον τρόπο με τον οποίο θέλουμε να εμφανίζονται τα αντικείμενα (αριστερά - δεξιά) Ορισμός του Layout που θέλουμε να χρησιμοποιήσει το Panel μας. Ορισμός του αντικειμένου και προσθήκη του στο Panel. Το πού θα τοποθετηθεί ορίζεται από τον διαχειριστή. Ορισμός του εξ’ορισμού ενεργού χώρου του παραθύρου. Τοποθετούμε το δικό μας Panel (Container) αντί αυτού που έχει το JFrame Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 24

Παράδειγμα GridLayout Ορισμός βασικών παραμέτρων του παραθύρου Ορισμός ενός νέου Panel με το οποίο θα δουλέψουμε (ΟΧΙ το default) Ορισμός του Layout που θέλουμε να χρησιμοποιήσουμε. Οι παράμετρος ορίζουν τις διαστάσεις του πλέγματος καθώς και τις αποστάσεις ανάμεσα στα κενά Ορισμός του Layout που θέλουμε να χρησιμοποιήσει το Panel μας. Ορισμός του αντικειμένου και προσθήκη του στο Panel. Το πού θα τοποθετηθεί ορίζεται από τον διαχειριστή. Ορισμός του εξ’ορισμού ενεργού χώρου του παραθύρου. Τοποθετούμε το δικό μας Panel (Container) αντί αυτού που έχει το JFrame Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 25

Παράδειγμα BorderLayout Ορισμός των αντικειμένων που θέλουμε να χρησιμοποιήσουμε Ορισμός βασικών παραμέτρων του παραθύρου Ορισμός του Layout που θέλουμε να χρησιμοποιήσουμε. Ορισμός του Layout που θέλουμε να χρησιμοποιήσει το Panel μας. Ορισμός του αντικειμένου και προσθήκη του στο Panel. Το πού θα τοποθετηθεί ορίζεται έμμεσα από τον προγραμματιστή. Ορισμός του εξ’ορισμού ενεργού χώρου του παραθύρου. Τοποθετούμε το δικό μας Panel (Container) αντί αυτού που έχει το JFrame Διάλεξη 7 26

Συνδυασμός Layout Managers Τελικά ποιόν διαχειριστή τοποθέτησης πρέπει να χρησιμοποιήσουμε FlowLayout: Υπερβολικά απλός και χαλάει την διαρρύθμιση των αντικειμένων όταν το παράθυρο αλλάζει μέγεθος. GridLayout: Πολύ απλό! BorderLayout: Δίνει ελάχιστη ευελιξία τροποποίησης των διαστάσεων κάθε τμήματος. Πρέπει να συνδυαστούν οι επιμέρους διαχειριστές! Προσθέτουμε περισσότερα panel στο παράθυρο μας GridLayout (2x4) FlowLayout BorderLayout Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 27

Συνδυασμός Layout Managers Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 28

Τμήμα Πληροφορικής και Τηλεπικοινωνιών Listeners Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 29

Listeners = Interfaces Actions: Κλικ ένα κουμπί Επιλογή ενός menu item Κλικ Enter σε ένα text field Πάτημα ενός πλήκτρου Αποτέλεσμα ενός Action… Event Πώς διαχειριζόμαστε τα Events? Listeners Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 30

Τμήμα Πληροφορικής και Τηλεπικοινωνιών Listeners Τι είναι οι listeners? Interfaces Mε αυτό τον τρόπο χρησιμοποιούνται όταν κάποιος θέλει να παράσχει κάποιες abstract λειτουργικότητες. Ο κάθε χρήστης μπορεί να χρησιμοποιήσει τους Listeners (= interface) για να κάνει διαφορετικές λειτουργίες. Κάποιος μπορεί να τυπώνει ένα box που αναβοσβήνει, ενώ κάποιος άλλον να στέλνει ένα μήνυμα. Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 31

Παράδειγμα ActionListener (1/2) Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 32

Παράδειγμα ActionListener (2/2) Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 33

Τμήμα Πληροφορικής και Τηλεπικοινωνιών Αλλοι Listeners Interface KeyListener keyPressed(KeyEvent e) keyReleased(KeyEvent e) keyTyped(KeyEvent e) Interface MouseListener mouseClicked(MouseEvent e) mouseEntered(MouseEvent e) mouseExited(MouseEvent e) mousePressed(MouseEvent e) mouseReleased(MouseEvent e) Interface MouseMotionListener mouseDragged(MouseEvent e) mouseMoved(MouseEvent e) Interface WindowListener windowActivated(WindowEvent e) windowClosed(WindowEvent e) windowClosing(WindowEvent e) windowDeactivated(WindowEvent e) windowDeiconified(WindowEvent e) windowIconified(WindowEvent e) windowOpened(WindowEvent e) Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 34

Παράδειγμα Calculator (1/5) Graphical User Interface Frame Functionalities – Actions Action Listeners Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 35

Παράδειγμα Calculator (2/5) Frame Creation Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 36

Παράδειγμα Calculator (1/X) Frame Creation Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 37

Παράδειγμα Calculator (1/X) Action Listeners Διάλεξη 7 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2015-2016 38

Παράδειγμα Calculator (5/5) Action Listeners Διάλεξη 7 39