Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

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

Παρόμοιες παρουσιάσεις


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google