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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
Advertisements

ΕΝΟΤΗΤΑ 2 – Κεφάλαιο 6: Το Γραφικό Περιβάλλον Επικοινωνίας (Γ.Π.Ε.)
JAVA: AWT, EVENTS, APPLETS Θ. Βαρβαρίγου Καθηγήτρια ΕΜΠ Τηλ
ΕΠΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ – ΜΗΧΑΝΗΣ Εαρινό Εξάμηνο 2007 Παρουσίαση Εργαλείου Ανάπτυξης JBuilder Τσουρού Σταυρούλα, ΑΜ 708 Μαδεμλής Ιωάννης, ΑΜ 669.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 11: Intro to Applets Εβδομάδα 11: Εισαγωγή στα Applets.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 10: Graphical User Interfaces Εβδομάδα 10: Εισαγωγή στα Γραφικά Περιβάλλοντα.
Αντικειμενοστρεφής Προγραμματισμός, Αντώνιος Συμβώνης, Πανεπιστήμιο Ιωαννίνων, Slide 1 Week 13: Review Εβδομάδα 13: Ανασκόπηση.
Visual Basic 6 - Φυλλάδιο 2
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
Γραφικά Ενδιάμεσα Χρήστη στην Java
GUI Components and Events JavaMethods An Introduction to Object-Oriented Programming TM.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING Επισκόπηση.
ΕΝΟΤΗΤΑ 2 – Κεφάλαιο 6: Το Γραφικό Περιβάλλον Επικοινωνίας (Γ.Π.Ε.)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) OOP Concepts and Object-Oriented Design.
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) Java Classes, Objects, και Events.
ΕΠΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ-ΜΗΧΑΝΗΣ Παρουσίαση της LessTif  Μαραγκός ΘοδωρήςΑ.Μ. 557  Καρκάνης ΗλίαςΑ.Μ. 539.
Abstract Window Toolkit (AWT) Πακέτο που περιέχει τις απαραίτητες κλάσεις για τη δημιουργία και Πακέτο που περιέχει τις απαραίτητες κλάσεις για τη δημιουργία.
DreamWeaver Παρουσίαση Εργαλείου για Ανάπτυξη Web-based GUIs 1.
Διαχείριση γεγονότων (events) Γεγονότα: Κλήσεις που παράγονται από γραφικά στοιχεία (Components) π.χ. click ποντικιού, μετακίνηση ποντικιού Ακρόαση-Διαχείριση.
Παρουσίαση Glade Νίκος Δεληγιάννης Α.Μ.: Τι είναι το Glade; Εφαρμογή για την αυτοματοποίηση της σχεδίασης ενός γραφικού περιβάλλοντος χρήστη (GUI).
Abstract Window Toolkit (AWT) Πακέτο που περιέχει τις απαραίτητες κλάσεις για τη δημιουργία και Πακέτο που περιέχει τις απαραίτητες κλάσεις για τη δημιουργία.
Κεφάλαιο 7 Abstract Window Toolkit (AWT). 2 Πακέτο που περιέχει τις απαραίτητες κλάσεις για τη δημιουργία και λειτουργία ενός γραφικού περιβάλλοντος εργασίας.
ΜΕΤΑΛΛΕΥΤΙΚΗ ΝΟΜΟΘΕΣΙΑ ΔΙΑΧΕΙΡΙΣΗΚΑΙ ΑΞΙΟΠΟΙΗΣΗ ΜΕΤΑΛΛΕΥΜΑΤΩΝ Τζίμας Σπύρος Μηχανικός Μεταλλείων – Μεταλλουργός ΕΜΠ.
ΣΥΣΤΑΣΗ - ΣΥΓΚΡΟΤΗΣΗ ΑΥΤΟΔΙΟΙΚΗΣΗΣ ΚΑΙ ΑΠΟΚΕΝΤΡΩΜΕΝΗΣ ΔΙΟΙΚΗΣΗΣ Οι δήμοι και οι περιφέρειες συγκροτούν τον πρώτο και δεύτερο βαθμό τοπικής αυτοδιοίκησης.
[A6] – Προηγμένο Περιβάλλον Αντικειμενοστρεφούς Προγραμματισμού Java Επιμόρφωση Εκπαιδευτικών Πληροφορικής.
Διοίκηση προμηθειών και διαχείριση Υλικών 10 Μάθημα Γεώργιος Απλαδάς Τμήμα Διοίκησης Τουριστικών Επιχειρήσεων Χειμερινό.
ΕΡΓΑΣΤΗΡΙΟ – No.7 Ηλεκτρονικού Εμπορίου Ε-Επιχειρείν Δρ. Χρήστος Κ. Γεωργιάδης Java APIs για Web Services: ΧΜL και JSP.
Click to add Text Σπάνια ζώα Μαργιάννα,Ελεάννα. Λεοπάρδαλη Αμούρ Ρινόκερος της Σουμάτρα Γιγαντιαίο καλαμάρι Αγριόγατα Πρίστης ή «ξυλουργός καρχαρίας.
Click to add Text Φυσικά φαινόμενα Μαργιάννα Άννα ΣΤ’1.
Αρχεία - Φάκελοι Αρχείο ονομάζουμε μια οργανωμένη συλλογή από δεδομένα, που είναι αποθηκευμένα σε κάποιο μέσο αποθήκευσης του υπολογιστή. Τα βασικά χαρακτηριστικά.
Κάθετες και πλάγιες. Κάθετα και πλάγια τμήματα Έστω ευθεία ε και σημείο Α εκτός αυτής. ε Κ Β Α Από το Α διέρχεται μοναδική κάθετη. Έστω ζ μια άλλη ευθεία.
ΠΡΟΥΠΟΛΟΓΙΣΜΟΣ ΜΑΡΙΑ ΜΠΑΤΣΙΚΟΥΡΑ.
Κατανεμημένα Συστήματα
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΜΥΛΟΙ.
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Μακροοικονομία Διάλεξη 9.
ΕΝΟΤΗΤΑ 2 – Κεφάλαιο 6: Το Γραφικό Περιβάλλον Επικοινωνίας (Γ.Π.Ε.)
Κατηγορίες Λογισμικού
«Το αλφαβητάρι της Ιλιάδας»
ΦΩΤΟΒΟΛΤΑΪΚΑ Καραχάλιος Σπύρος.
Παρουσιάζουν οι : Αποστόλης Τσιριβάκος Βασίλης Χουβαρδάς από το Ε2
Η ΛΟΓΙΚΗ ΟΡΓΑΝΩΣΗ ΤΟΥ.
Web Services στη C# Εργαστήριο 2
Συστημα διαχΕΙρισης επιστημονικΩν Εργων
6η ενότητα: Σχεδίαση (layout) και εξαγωγή του χάρτη
Λειτουργικά Συστήματα και Ασφάλεια Πληροφοριακών Συστημάτων Επαναφορά Συστήματος σε προηγούμενη κατάσταση λειτουργίας (σημείο επαναφοράς) Αντίγραφο.
Συνηρημένα ρήματα σε –αω (ενεργητική & μέση φωνή)
Ζωγράφου Αθηνά (ΠΕ02)-Κοπατσάρη Γεωργία (ΠΕ03)
Σχεδιασμός με αναζήτηση στο χώρο πλάνων
ΕΝΟΤΗΤΑ 2 – Κεφάλαιο 6: Το Γραφικό Περιβάλλον Επικοινωνίας (Γ.Π.Ε.)
ΘΡΗΣΚΕΥΤΙΚΑ Β ΓΥΜΝΑΣΙΟΥ
ΕΝΟΤΗΤΑ 2 – Κεφάλαιο 6: Γραφικό Περιβάλλον Επικοινωνίας
Ευρύ Πεδίο Εφαρμογών Κατ’ Οίκον Φροντίδα Νοσοκομεία Ιατροί Εργαστήρια
ΧΡΗΣΗ ΤΟΥ ΓΡΑΦΙΚΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΣΤΟ MATLAB(GUI) – ΑΝΑΠΤΥΞΗ ΑΠΛΗΣ ΕΦΑΡΜΟΓΗΣ ΣΤΗ ΔΙΔΑΣΚΑΛΙΑ ΤΩΝ ΨΗΦΙΑΚΩΝ ΚΥΚΛΩΜΑΤΩΝ ΦΟΙΤΗΤΕΣ: ΣΚΡΙΜΠΑΣ ΜΙΧΑΗΛ–ΑΕΜ:3135 ΤΑΚΟΣ.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Swing II Εβδομάδα Νο. 6.
Προχωρημένος Προγραμματισμός
Προγραμματισμός κινητών συσκευών
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Η παρουσίαση αυτή ίσως προκαλέσει συζήτηση με το κοινό από την οποία θα προκύψουν ενέργειες. Χρησιμοποιήστε το PowerPoint για να καταγράψετε τις ενέργειες.
Λειτουργικά Συστήματα
Λειτουργικά Συστήματα
МИФ ғылымына саяхат Интелектуалды шоу.
Week 10: Graphical User Interfaces
Εργασία στο μάθημα της Πληροφορικής Σχολείο:9ο Γυμνάσιο Τρικάλων Σχολικό έτος: Τάξη:Α2’ Υπεύθυνος καθηγητής: Μπουλογεώργος Στέφανος.
Επικοινωνίας Java με Swing
ΕΝΟΤΗΤΑ 2 – Κεφάλαιο 6: Το Γραφικό Περιβάλλον Επικοινωνίας (Γ.Π.Ε.)
Μεταγράφημα παρουσίασης:

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

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

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

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

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

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

Σύνδεση των δύο πακέτων  Το swing κληρονομεί και εξειδικεύει/ επεκτείνει τις τάξεις του AWT  Σε πολλές εφαρμογές χρησιμοποιούνται και τα δύο παράλληλα Συγκριτική αποτίμηση: 7 Διάλεξη 7Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο

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

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

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) Όλες οι κλάσεις γραφικών έχουν σημαντικό αριθμό μεθόδων. Εδώ παρουσιάζεται ένα πολύ μικρό υποσύνολό τους. Για περισσότερες λεπτομέρειες ανατρέξτε στην τεκμηρίωση 10 Διάλεξη 7Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο

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 11 Διάλεξη 7Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο

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

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

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

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”) 15 Διάλεξη 7Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αλλοι 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) 34 Διάλεξη 7Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο

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

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

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

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

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