Abstract Window Toolkit (AWT) Πακέτο που περιέχει τις απαραίτητες κλάσεις για τη δημιουργία και Πακέτο που περιέχει τις απαραίτητες κλάσεις για τη δημιουργία.

Slides:



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

Οπτικός Προγραμματισμός  Περιέχει έτοιμα components υλοποίησης κοινών διαλόγων  OpenDialog : διάλογος για την επιλογή αρχείου για άνοιγμα.  SaveDialog.
Εκμάθηση διεπαφής MS Kodu. Δημιουργώ τον Κόσμο Το πρώτο πράγμα που θα φτιάξουμε είναι ο κόσμος. Λογικό, αφού χωρίς κόσμο, πού θα τοποθετούσαμε μετά τα.
Κληρονομικότητα. Εισαγωγή  Κληρονομικότητα (Inheritance) καλείται ο μηχανισμός με τον οποίο μία νέα κλάση που ονομάζεται παράγωγη (derived class) δημιουργείται.
Πίνακες.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
JAVA: AWT, EVENTS, APPLETS Θ. Βαρβαρίγου Καθηγήτρια ΕΜΠ Τηλ
Windows Programming Web controls. •Τα web forms είναι container αντικείμενα σχεδιασμένα για να κάνουνε host άλλα controls, όπως α) Web server controls,
ΕΠΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ – ΜΗΧΑΝΗΣ Εαρινό Εξάμηνο 2007 Παρουσίαση Εργαλείου Ανάπτυξης JBuilder Τσουρού Σταυρούλα, ΑΜ 708 Μαδεμλής Ιωάννης, ΑΜ 669.
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 9: Διανύσματα και λίστες.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
Φροντηστήριο Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Eργαλεία.
Μήτρες (templates)  Μία μήτρα είναι ένα κομμάτι κώδικα που περιέχει παραμέτρους οι οποίες δέχονται ως τιμές τύπους δεδομένων.  Είναι ένας μηχανισμός.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 11: Intro to Applets Εβδομάδα 11: Εισαγωγή στα Applets.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 6: Java Collections Εβδομάδα 6: Συλλογές δεδομένων στην Java.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 10: Graphical User Interfaces Εβδομάδα 10: Εισαγωγή στα Γραφικά Περιβάλλοντα.
Αντικείμενα, Κλάσεις και Μέθοδοι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Συλλογές.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
Γραφικά Ενδιάμεσα Χρήστη στην Java
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων. Πίνακας Συμβόλων (Symbol Table) (Ι)  Είναι μια δομή στην οποία αποθηκεύονται τα ονόματα ενός προγράμματος και.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING Επισκόπηση.
ΕΣΔ 232: Οργάνωση δεδομένων στην Κοινωνία της Πληροφορίας © 2013 Nicolas Tsapatsoulis Φόρμες Δημιουργία Περιεχομένου Ι.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
ΣΥΝΑΡΤΗΣΕΙΣ.
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 11: Εκτέλεση Java χωρίς το BlueJ.
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων Φροντιστήριο - 30/04/2009.
Microsoft PowerPoint Powerpoint Κίκα Χρυσοστόμου.
Εισαγωγή στον αντικειμενοστραφή προγραμματισμό Κλάσεις και αντικείμενα Κλάσεις και αντικείμενα Κατασκευαστές κλάσεων (constructors) Κατασκευαστές κλάσεων.
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) Java Classes, Objects, και Events.
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
Ποιότητα Λογισμικού Ενότητα 3: Σουίτες Ελέγχων. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
XERTE TUTORIAL - ΣΗΜΕΙΩΣΕΙΣ ΕΡΓΑΣΤΗΡΙΟΥ ΘΜΕΛ ΣΤ. ΔΗΜΗΤΡΙΑΔΗΣ Xerte Interaction – Διάδραση Θεωρίες Μάθησης & Εκπαιδευτικό Λογισμικό Σημειώσεις Εργαστηρίου.
Εισαγωγή στη .net Visual C++
Εισαγωγή στον αντικειμενοστραφή προγραμματισμό
Μορφοποίηση Παραγράφων
Εύρεση και είσοδος σε κανάλι συνομιλίας Χρησιμοποιήστε την αναζήτηση του Lync για την εύρεση καναλιών στα οποία έχετε πρόσβαση. 1.Στο κύριο παράθυρο του.
Applets Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη δυνατότητα προβολής γραφικών και τη δυνατότητα υλοποίησης ενός γραφικού.
Διαχείριση γεγονότων (events) Γεγονότα: Κλήσεις που παράγονται από γραφικά στοιχεία (Components) π.χ. click ποντικιού, μετακίνηση ποντικιού Ακρόαση-Διαχείριση.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
Microsoft Excel 4.3 Διαχείριση Φύλλων Εργασίας Κίκα Χρυσοστόμου.
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
Threads Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά η μία μετά.
Προγραμματισμός με GTK ΠΑΡΟΥΣΙΑΣΗ ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ «ΕΠΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ-ΜΗΧΑΝΗΣ» ΑΛΕΞΑΝΔΡΟΣ Κ. ΓΙΔΑΡΑΚΟΣ
Abstract Window Toolkit (AWT) Πακέτο που περιέχει τις απαραίτητες κλάσεις για τη δημιουργία και Πακέτο που περιέχει τις απαραίτητες κλάσεις για τη δημιουργία.
Applets Εκτελούνται από τον appletviewer και από Java enabled web browsers Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη.
1 Κεφάλαιο 2 Εισαγωγή στον αντικειμενοστραφή προγραμματισμό.
Κεφάλαιο 7 Abstract Window Toolkit (AWT). 2 Πακέτο που περιέχει τις απαραίτητες κλάσεις για τη δημιουργία και λειτουργία ενός γραφικού περιβάλλοντος εργασίας.
Γραφικά με Java 1 Διάλεξη 7Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο
Software Engineering for Web Applications
Πληροφοριακά Συστήματα Διοίκησης MIS
Κλάσεις και αντικείμενα
Wrapper Classes, Abstract Classes and Interfaces
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΣΥΝΟΠΤΙΚΗ ΠΑΡΟΥΣΙΑΣΗ POWERPOINT
Web Services στη C# Εργαστήριο 3
Εισαγωγή στη Java Χαρακτηριστικά της Java Εργαλεία της Java
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Swing II Εβδομάδα Νο. 6.
Γραφικό Περιβάλλον Εργασίας H/Y
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Λειτουργικά Συστήματα
Λειτουργικά Συστήματα
Week 10: Graphical User Interfaces
Επικοινωνίας Java με Swing
Μεταγράφημα παρουσίασης:

Abstract Window Toolkit (AWT) Πακέτο που περιέχει τις απαραίτητες κλάσεις για τη δημιουργία και Πακέτο που περιέχει τις απαραίτητες κλάσεις για τη δημιουργία και λειτουργία ενός γραφικού περιβάλλοντος εργασίας λειτουργία ενός γραφικού περιβάλλοντος εργασίας Είδη κλάσεων του πακέτου AWT: Είδη κλάσεων του πακέτου AWT: 1.Components: Κλάσεις δημιουργίας γραφικών εργαλείων 1.Components: Κλάσεις δημιουργίας γραφικών εργαλείων (κουμπιά, πεδία εισαγωγής κειμένου, λίστες κλπ) (κουμπιά, πεδία εισαγωγής κειμένου, λίστες κλπ) 2. Event classes: Κλάσεις που παρέχουν πληροφορίες 2. Event classes: Κλάσεις που παρέχουν πληροφορίες σχετικές με γεγονότα (κίνηση ποντικιού, πάτημα πλήκτρων) σχετικές με γεγονότα (κίνηση ποντικιού, πάτημα πλήκτρων) 3. Event listeners: Ακροατές γεγονότων. Περιέχουν μεθόδους 3. Event listeners: Ακροατές γεγονότων. Περιέχουν μεθόδους που εκτελούνται κάθε φορά που εμφανίζεται το γεγονός που που εκτελούνται κάθε φορά που εμφανίζεται το γεγονός που εκπροσωπούν εκπροσωπούν

Components, Containers Components: Στοιχεία που προσδίδουν σε μια εφαρμογή τη λειτουργικότητα ενός graphical user interface (πχ buttons, textfields, checkboxes). Containers: Κατηγορία components τα οποία εμπεριέχουν components στην περιοχή τους και τα διατάσσουν βάσει καθορισμένων προτύπων διάταξης (layouts). Ενα container μπορεί να περιέχει και containers στην επιφάνειά του.

Ιεραρχική διάταξη components-containers BorderLayout java.lang.Object CheckboxGroup Component FlowLayout GridLayout TextComponent Button Label Checkbox List Choice Container TextField Panel java.applet.Applet TextArea

Label java.lang.Object CheckboxGroup Component FlowLayout GridLayout TextComponent Button Label Checkbox List Choice Container TextField Panel java.applet.Applet TextArea

Label Label: Απεικονίζει μη τροποποιήσιμο κείμενο Κατασκευαστές: Label ( ); Label ( String labelContent ); Label ( String labelContent, int alignment ); labelContent: Το μη τροποοποιήσιμο string του label alignment: η στοιχιση του string στο διαθέσιμο για το label διάστημα Σταθερές: LEFT, RIGHT, CENTER

Button BorderLayout java.lang.Object CheckboxGroup Component FlowLayout GridLayout TextComponent Button Label Checkbox List Choice Container TextField Panel java.applet.Applet TextArea

Button Εκτελούν κώδικα όταν επιλεγούν με mouse click Κατασκευαστές: Button ( ); Button ( String buttonLabel ); Μέθοδοι: void setLabel ( String buttonLabel ); String getLabel ( );

Textfield BorderLayout java.lang.Object CheckboxGroup Component FlowLayout GridLayout TextComponent Button Label Checkbox List Choice Container TextField Panel java.applet.Applet TextArea

TextField Component για την εισαγωγή strings από το χρήστη Εάν είναι μη τροποποιήσιμα από το χρήστη απλώς απεικονίζουν string output. Κατασκευαστές: TextField ( ); TextField ( int columns ); TextField ( String text ); TextField ( String text, int columns ); Μέθοδοι: void setText ( String text );

TextArea BorderLayout java.lang.Object CheckboxGroup Component FlowLayout GridLayout TextComponent Button Label Checkbox List Choice Container TextField Panel java.applet.Applet TextArea

TextArea TextField πολλαπλών γραμμών Κατασκευαστές: TextArea ( ); TextArea ( String text ); TextArea ( String text, int rows, int columns ); TextArea ( String text, int rows, int columns, int scrollbars ); String text: αρχικά παρουσιαζόμενο κείμενο Int rows: κατακόρυφο μέγεθος σε γραμμές Int columns: οριζόντιο μέγεθος σε χαρακτήρες Int scrollbars:SCROLLBARS_BOTH, SCROLLBARS_HORIZONTAL_ONLY SCROLLBARS_NONE SCROLLBARS_VERTICAL_ONLY SCROLLBARS_BOTH SCROLLBARS_HORIZONTAL_ONLYSCROLLBARS_NONE SCROLLBARS_VERTICAL_ONLYSCROLLBARS_BOTH SCROLLBARS_HORIZONTAL_ONLYSCROLLBARS_NONE SCROLLBARS_VERTICAL_ONLY

TextAreaΜέθοδοι void append ( String str )

Choice BorderLayout java.lang.Object CheckboxGroup Component FlowLayout GridLayout TextComponent Button Label Checkbox List Choice Container TextField Panel java.applet.Applet TextArea

Choice Λίστα στοιχείων από τα οποία ο χρήστης επιλέγει μόνο ένα Κατασκευαστής Choice( ); Μέθοδοι: void add(String str): Προσθήκη επιλογής με το Label str void remove(int position): Αφαιρεί το στοιχείο που βρίσκεται στη θέση position void remove(String str): Ομοίως, βάσει του ονόματος του στοιχείου void select(String str) επιλέγει το στοιχείο με το όνομα str int getSelectedIndex( ); Επιστρέφει το δείκτη του επιλεγέντος στοιχείου String getSelectedItem( ); Επιστρέφει το όνομα του επιλεγέντος στοιχείου String getItem(int index); Επιστρέφει το όνομα του στοιχείου με δείκτη index.

Checkbox BorderLayout java.lang.Object CheckboxGroup Component FlowLayout GridLayout TextComponent Button Label Checkbox List Choice Container TextField Panel java.applet.Applet TextArea

Checkbox Boolean component. Χρησιμοποιείται για την ενεργοποίηση ή απενεργοποίηση μιας λειτουργίας. Κατασκευαστές: Checkbox ( ); Checkbox ( String label, boolean state ) Checkbox ( String label, boolean state, CheckboxGroup group) Μέθοδοι: boolean getState ( ) void setState ( boolean state ); String getLabel ( ); void setLabel ( String str );

List BorderLayout java.lang.Object CheckboxGroup Component FlowLayout GridLayout TextComponent Button Label Checkbox List Choice Container TextField Panel java.applet.Applet TextArea

List Προσφέρει την επιλογή ενός η περισσοτέρων στοιχείων Κατασκευαστές: List ( ); List ( int rows ) List ( int rows, boolean multipleMode ) Μέθοδοι: void add ( String itemName ): Προσθέτει επιλογή με το όνομα itemName void add ( String itemName, int index ): Προσθέτει επιλογή με την ετικέτα itemName στη θέση με δείκτη index void remove ( String itemName ): Αφαιρεί την επιλογή με την ονομασία itemName void remove ( int position ): Αφαιρεί την επιλογή της θέσης με δείκτη position String getSelectedItem ( ): Επιστρέφει το String της επιλογής του χρήστη String [ ] getSelectedItem ( ): Επιστρέφει array με τα Strings της επιλογής του χρήστη int getSelectedIndex ( ): Επιστρέφει το δείκτη του επιλεγέντος στοιχείου int[ ] getSelectedIndexes ( ): Επιστρέφει array με τους δείκτες των επιλεγόμενων στοιχείων

Containers Κλάσεις που παρέχουν διάστημα για την τοποθέτηση components Η προσθήκη ενός component στη γραφική επιφάνεια ενός container γίνεται με τη χρήση της μεθόδου add(); container.add(component,…extra arguments); Η add δέχεται επιπλέον ορίσματα ανάλογα με τον τρόπο διευθέτησης των components (layout) που έχει επιλεγεί για το τρέχον container.

Panel Η βασική κλάση Container. Κατασκευαστές: Panel( ) Panel( LayoutManager layout ): Αρχικοποιεί το Panel και διατάσσει τα προστιθέμενα components σύμφωνα με το δοθέν layout (βλ. Layouts). Η κλάση Applet είναι υποκλάση της Panel συνεπώς μπορεί να καλέσει τις μεθόδους που περιλαμβάνονται σε ένα container.

ScrollPane Container το οποίο μπορεί να εμφανίσει οριζόντια και κατακόρυφη γραμμή κύλισης σε περίπτωση που τα προστιθέμενα components δε χωράνε στην επιφάνειά του. Κατασκευαστές: ScrollPane( ); ScrollPane( int scrollbarDisplayPolicy ) ; scrollbarDisplayPolicy: καθορίζει κανόνες εμφάνισης γραμμών κύλισης (Σταθερές: SCROLLBARS_ALWAYS, SCROLLBARS_AS_NEEDED, SCROLLBARS_NEVER)

Layouts Προτυποποιημένα templates διάταξης των στοιχείων μέσα σε ένα container Καθορίζουν τη θέση των Components και των containers πάνω στη διαθέσιμη γραφική επιφάνεια του φιλοξενούντος container. Το Layout ενός container καθορίζεται μέσω της μεθόδου: public final void setLayout( LayoutManager layout ); που ορίζεται σε όλες τις κλάσεις-containers.

FlowLayout BorderLayout java.lang.Object CheckboxGroup Component FlowLayout GridLayout TextComponent Button Label Checkbox List Choice Container TextField Panel java.applet.Applet TextArea

FlowLayout Διατάσσει τα προστιθέμενα components σειριακά Είναι το default Layout. Κατασκευαστής: FlowLayout(); Προσθήκη component σε container με FlowLayout: container.add(component);

BorderLayout BorderLayout java.lang.Object CheckboxGroup Component FlowLayout GridLayout TextComponent Button Label Checkbox List Choice Container TextField Panel java.applet.Applet TextArea

BorderLayout Περιλαμβάνει πέντε προσανατολισμούς: “North”,”South”,”West”,”East”,”Center” Κατασκευαστής: BorderLayout(); Προσθήκη component σε container με BorderLayout Container.add(“Orientation”,component);

GridLayout BorderLayout java.lang.Object CheckboxGroup Component FlowLayout GridLayout TextComponent Button Label Checkbox List Choice Container TextField Panel java.applet.Applet TextArea

GridLayout Διαχωρίζει τη διαθέσιμη επιφάνεια σε ισομερείς ορθογώνιες περιοχές. GridLayout(int rows,int columns); Προσθήκη component comp σε Container con με GridLayout: container.add(component); Τα components τοποθετούνται σε σειρά από αριστερά προς τα δεξιά και από επάνω προς τα κάτω.

Event Classes Κλάσεις που εκπροσωπούν γεγονότα. Για κάθε τύπο event ορίζεται και διαφορετική κλάση. Πχ events σχετικά με το πληκτρολόγιο και events σχετικά με το ποντίκι εκπροσωπούνται από διαφορετικές κλάσεις. Κάθε event class περιλαμβάνει τις κατάλληλες μεθόδους για τον προσδιορισμό χαρακτηριστικών που περιγράφουν το γεγονός. Π.χ. μέσω της κλάσης MouseEvent μπορούμε να βρούμε σε ποιο σημείο μιας επιφάνειας ο χρήστης έκανε mouse click και μέσω της κλάσης KeyEvent ποιο κουμπί του πληκτρολογίου πατήθηκε. Κάθε component παράγει συγκεκριμένα events.

Ιεραρχία EventClasses java.lang.Object java.util.EventObject java.awt.AWTEvent ActionEvent ItemEvent ComponentEvent AdjustmentEvent ContainerEvent FocusEvent PaintEvent WindowEvent InputEvent KeyEvent MouseEvent

KeyEvent java.lang.Object java.util.EventObject java.awt.AWTEvent ActionEvent ItemEvent ComponentEvent AdjustmentEvent ContainerEvent FocusEvent PaintEvent WindowEvent InputEvent KeyEvent MouseEvent

KeyEvent Παράγεται από ολα τα components Μέθοδοι: char getKeyChar( ): Επιστρέφει το χαρακτήρα που αντιστοιχεί στο πλήκτρο που πατήθηκε. Μόνο για κουμπιά που αντιστοιχούν σε χαρακτήρες. Int getKeyCode( ): Επιστρέφει τον κωδικό (VK) του πλήκτρου που πατήθηκε (Οι virtual codes των πλήκτρων ορίζονται ως σταθερές- μέλη στην κλάση KeyEvent). String getKeyText( ): Επιστρέφει ως string το όνομα του πλήκτρου που πατήθηκε. Περιλαμβάνονται και τα πλήκτρα ελέγχου, πχ για το function key F1 επιστρέφει “F1”;

MouseEvent java.lang.Object java.util.EventObject java.awt.AWTEvent ActionEvent ItemEvent ComponentEvent AdjustmentEvent ContainerEvent FocusEvent PaintEvent WindowEvent InputEvent KeyEvent MouseEvent

MouseEvent Παράγεται από όλα τα components. Μέθοδοι: int getButton( ): Επιστρέφει τον κωδικό του πλήκτρου του ποντικιού που πατήθηκε. Επιστρεφόμενες σταθερές: BUTTON_1,BUTTON_2,BUTTON_3 int getX( ): Επιστρέφει τη συντεταγμένη X του component όπου προκλήθηκε το MouseEvent int getY( ): Επιστρέφει τη συντεταγμένη Y του component όπου προκλήθηκε το MouseEvent.

ItemEvent java.lang.Object java.util.EventObject java.awt.AWTEvent ActionEvent ItemEvent ComponentEvent AdjustmentEvent ContainerEvent FocusEvent PaintEvent WindowEvent InputEvent KeyEvent MouseEvent

ItemEvent Παράγεται κατά την επιλογή ενός στοιχείου σε Checkboxes, Lists, Choices. int getStateChange( ): Επιστρέφει τιμή εξαρτώμενη από την αλλαγή κατάστασης σε επιλογές. Επιστρεφόμενες σταθερές: SELECTED, DESELECTED

Ακροατές γεγονότων Κλάσεις που αναλαμβάνουν τη διαχείριση των γεγονότων Κάθε κλάση ειδικεύεται στη διαχείριση συγκεκριμένου γεγονότος Πχ KeyEvent ή ActionEvent Κάθε κλάση, ανάλογα με τα γεγονός που διαχειρίζεται, υλοποιεί και ένα αντίστοιχο interface. Πχ. κλάση που διαχειρίζεται MouseEvents υλοποιεί το interface MouseListener Σε κάθε component ή container αντιστοιχίζουμε διαχειριστή γεγονότων με μία μέθοδο του της μορφής: addEventListener(interface EventListener) Πχ addMouseListener(MouseListener e) Σε κάθε component (Button, TextField, List κλπ) μπορεί να ανατεθεί ακροατής ο οποίος διαχειρίζεται ένα κοινό για τα components γεγονός με διαφορετικό τρόπο σε κάθε περίπτωση.

Μερικές μέθοδοι καταχώρησης κλάσεων-ακροατών γεγονότων void addKeyListener( interface KeyListener ) Περιέχεται σε όλα τα components-containers. void addMouseListener( interface MouseListener ) Περιέχεται σε όλα τα components-containers. void addMouseMotionListener( interface MouseMotionListener ) Περιέχεται σε όλα τα components-containers. void addActionListener( interface ActionListener ) Περιέχεται στα components: Button,TextField,List. void addTextListener( interface TextListener ) Περιέχεται στα components: TextField, TextArea. void addItemListener( interface ItemListener ) Περιέχεται στα components: Checkbox, Choice, List.

Adapter Classes AdapterClasses: Προϋπάρχουσες κλάσεις που περιέχουν όλες τις συναρτήσεις ενος event listener interface με κενό σώμα. Ο προγραμματισής, αντί να ορίσει εκ του μηδενός μια κλάση ακροατή και να ορίσει ολες τις μεθόδους του αντίστοιχου interface, παρακάμπτει τις μεθόδους της adapter κλάσης. Πχ η κλάση MouseAdapter περιέχει όλες τις μεθόδους- με κενό σώμα - που απαιτούνται ώστε μια κλάση να υλοποιεί το interface mouseListener.

Ιεραρχική δομή Listener interfaces ActionListener AdjustmentListener ComponentListener ContainerListener FocusListener ItemListener KeyListener MouseListener MouseMotionListener TextListener WindowListener java.lang.Object java.util.EventListener

Interface KeyListener ActionListener AdjustmentListener ComponentListener ContainerListener FocusListener ItemListener KeyListener MouseListener MouseMotionListener TextListener WindowListener java.lang.Object java.util.EventListener

Interface KeyListener Κλάσεις-διαχειριστές που το υλοποιούν διαχειρίζονται KeyEvents. Μέθοδοι: void keyTyped ( KeyEvent e ): Εκτελείται όποτε ο χρήστης πατά ένα πλήκτρο void keyPressed ( KeyEvent e ): Εκτελείται όποτε ο χρήστης πιέζει ένα πλήκτρο void keyReleased ( KeyEvent e ): Εκτελείται όποτε ο χρήστης αφήνει ένα πλήκτρο. AdapterClass:KeyAdapter

Interface MouseListener ActionListener AdjustmentListener ComponentListener ContainerListener FocusListener ItemListener KeyListener MouseListener MouseMotionListener TextListener WindowListener java.lang.Object java.util.EventListener

Interface MouseListener Υλοποιείται από κλάσεις που διαχειρίζονται Mouse Clicks Μέθοδοι: void mouseClicked( MouseEvent e ): Εκτελείται όταν πατηθεί πλήκτρο του mouse στην επιφάνεια του τρέχοντος component void mouseEntered( MouseEvent e ):Εκτελείται όταν ο δείκτης του mouse εισέλθει στην επιφάνεια του τρέχοντος component. void mouseExited( MouseEvent e): Εκτελείται όταν ο δείκτης του mouse εξέλθει από την επιφάνεια του τρέχοντος component. void mousePressed( MouseEvent e ): Εκτελείται όταν πιεστεί πλήκτρο του mouse στην επιφάνεια του τρέχοντος component. void mouseReleased( MouseEvent e ): Εκτελείται όταν πλήκτρο του mouse στην επιφάνεια του τρέχονταο component. Adapter κλάση: MouseAdapter

Interface MouseMotionListener ActionListener AdjustmentListener ComponentListener ContainerListener FocusListener ItemListener KeyListener MouseListener MouseMotionListener TextListener WindowListener java.lang.Object java.util.EventListener

Interface MouseMotionListener Υλοποιείται από κλάσεις που διαχειρίζονται γεγονότα κίνησης ποντικιού. Μέθοδοι: void mouseDragged( MouseEvent e ): Εκτελείται όποτε μετακινείται ο δείκτης του ποντικιού στην επιφάνεια του τρέχοντος component με πιεσμένο ένα από τα πλήκτρα του. void MouseMoved( MouseEvent e ):Εκτελείται όποτε μετακινείται ο δείκτης του ποντικιού στην επιφάνεια του τρέχοντος component χωρίς πιεσμένο πλήκτρο. Adapter κλάση: MouseMotionAdapter

Interface ActionListener ActionListener AdjustmentListener ComponentListener ContainerListener FocusListener ItemListener KeyListener MouseListener MouseMotionListener TextListener WindowListener java.lang.Object java.util.EventListener

Interface ActionListener Υλοποιείται από κλάσεις που διαχειρίζονται ActionEvents Ορισμένα ActionEvents: 1. mouse click σε Button, 2. πάτημα Enter σε TextField, 3. πάτημα Enter ή διπλό Mouse click σε List item. Μέθοδοι: void actionPerformed(ActionEvent e): Εκτελείται όποτε εμφανίζεται action event στο τρέχον component AdapterClass: Δεν ορίζεται, εφόσον το interface περιέχει μόνο μία μέθοδο.

Interface TextListener ActionListener AdjustmentListener ComponentListener ContainerListener FocusListener ItemListener KeyListener MouseListener MouseMotionListener TextListener WindowListener java.lang.Object java.util.EventListener

Interface TextListener Υλοποιείται από κλάσεις που διαχειρίζονται γεγονότα αλλαγής κειμένου Μέθοδοι: void textValueChanged( TextEvent e ): Εκτελείται όποτε μεταβάλλεται το κείμενο που εμπεριέχεται στο τρέχον component. Adapter Class: Δεν ορίζεται, εφόσον το interface περιέχει μόνο μία μέθοδο.

Interface ItemListener ActionListener AdjustmentListener ComponentListener ContainerListener FocusListener ItemListener KeyListener MouseListener MouseMotionListener TextListener WindowListener java.lang.Object java.util.EventListener

Interface ItemListener Υλοποιείται από μεθόδους που διαχειρίζονται αλλαγές σε Components με επιλογές όπως Choices, CheckBoxes, Lists Μέθοδοι: void itemStateChanged(ItemEvent e): Εκτελείται όποτε μεταβάλλεται η κατάσταση του τρέχοντος component. Adapter κλάση: Δεν ορίζεται εφόσον το interface περιέχει μία μέθοδο προς υλοποίηση.

Inline κλάσεις-διαχειριστές Oι διαχειριστές γεγονότων μπορούν να αρχικοποιούνται “on the fly” στο όρισμα των καταχωρητών τους σε components όταν οι τελευταίοι καλούνται. Έτσι γίνεται έυκολα κατανοητή η αντιστοίχιση των ακροατών γεγονών στα components και διακρίνουμε ευκολότερα ποιος κώδικας εκτελείται σε κάθε component κατά την εμφάνιση ενός event. Τυπική δομή καταχώρησης μιας inline κλάσης-διαχειριστή: Τυπική δομή καταχώρησης μιας inline κλάσης-διαχειριστή: someComponent.addSomeEventListener( new SomeEventListener() {//Αρχικοποιημένη κλάση-ακροατής public void someEventMethod( ) //Overrided μέθοδος διαχείρισης public void someEventMethod( ) //Overrided μέθοδος διαχείρισης { Event method implementation here… } { Event method implementation here… } } );

Παράδειγμα δήλωσης inline κλάσεων-διαχειριστών Button a=new Button(“OK”); a.addActionListener( new ActionListener( ) { public void actionPerformed(ActionEvent evt) { Handling code for action event on “OK” button here… } }); Button b=new Button(“Cancel”); b.addActionListener( new ActionListener( ) { public void actionPerformed(ActionEvent evt) { Handling code for action event on “Cancel” button here… } });