Οντοκεντρικόσ Προγραμματιςμόσ

Σχετικά έγγραφα
Οντοκεντρικός Προγραμματισμός

ΓΡΑΦΙΚΕΣ ΔΙΕΠΑΦΕΣ ΧΡΗΣΤΗ- SWING (1)

Οντοκεντρικόσ Προγραμματιςμόσ

Οντοκεντρικόσ Προγραμματιςμόσ

Επιχειρηςιακή Έρευνα και εφαρμογζσ με την χρήςη του λογιςμικοφ R

Αναπαράςταςθ Γνώςθσ ςτον Παγκόςμιο Ιςτό Ενότθτα 2: XML Δομθμζνα Ζγγραφα Ιςτοφ, Μζροσ 4 ο XPath

Οντοκεντρικόσ Ρρογραμματιςμόσ

Οντοκεντρικόσ Προγραμματιςμόσ

Οντοκεντρικόσ Προγραμματιςμόσ

Ειδικζσ Ναυπηγικζσ Καταςκευζσ και Ιςτιοφόρα κάφη (Ε)

ΘΕΡΜΟΔΤΝΑΜΙΚΗ IΙ. Ενότθτα 4: Χθμικζσ αντιδράςεισ αερίων τακερά Χθμικισ Ιςορροπίασ Πρότυπθ Ελεφκερθ Ενζργεια

Τεχνικζσ Ανάλυςησ Διοικητικών Αποφάςεων

Τεχνικό Σχζδιο - CAD

Αποτυπώςεισ & Τεκμηρίωςη Αντικειμζνων

Οντοκεντρικόσ Προγραμματιςμόσ

Διδακτικι τθσ Γλϊςςασ Ι

Aντιπτζριςθ (ΕΠ027) Ενότθτα 12

Οντοκεντρικόσ Προγραμματιςμόσ

Κλαςικι Ηλεκτροδυναμικι

Aντιπτζριςη (ΕΠ027) Ενότητα 10

Ψθφιακι Επεξεργαςία ιματοσ

ΘΕΡΜΟΔΤΝΑΜΙΚΗ Ι. Ενότθτα 3: Μθδενικόσ Νόμοσ - Ζργο. ογομϊν Μπογοςιάν Πολυτεχνικι χολι Σμιμα Χθμικϊν Μθχανικϊν

ΘΕΡΜΟΔΤΝΑΜΙΚΗ Ι. Ενότθτα 1: Βαςικά χαρακτθριςτικά τθσ Θερμοδυναμικισ. ογομϊν Μπογοςιάν Πολυτεχνικι χολι Σμιμα Χθμικϊν Μθχανικϊν

ΘΕΡΜΟΔΤΝΑΜΙΚΘ IΙ. Ενότθτα 11: Διαλυτότθτα Ιδανικά διαλφματα ογομών Μπογοςιάν Πολυτεχνικι χολι Σμιμα Χθμικών Μθχανικών

Ειςαγωγή ςτη διδακτική των γλωςςών

Ερωτήσεις επανάληψης. Ενδοκρινείς αδένες. Τμήμα Ιαηρικής Πανεπιζηήμιο Παηρών

ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΑΙΔΑΓΩΓΙΚΗΣ ΓΥΜΝΑΣΤΙΚΗΣ ΙΙ

ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΑΙΔΑΓΩΓΙΚΗΣ ΓΥΜΝΑΣΤΙΚΗΣ ΙΙ

Αναπαράςταςθ Γνώςθσ ςτον Παγκόςμιο Ιςτό Ενότθτα 5: Κανόνεσ Λογικι και Συμπεραςμόσ

Τεχνικζσ Ανάλυςησ Διοικητικών Αποφάςεων

ΠΟΤΔΗ ΣΗ ΤΝΟΠΣΙΚΗ ΠΑΡΑΔΟΗ ΚΑΙ ΣΗΝ Q

Ψθφιακι Επεξεργαςία ιματοσ

Ψθφιακά Ηλεκτρονικά. Ενότθτα 5 : Ανάλυςθ κυκλώματοσ με D και JK FLIP- FLOP Φώτιοσ Βαρτηιώτθσ

Οντοκεντρικόσ Ρρογραμματιςμόσ

Οντοκεντρικόσ Ρρογραμματιςμόσ

Διαγλωςςική Επικοινωνία

Aντιπτζριςη (ΕΠ027) Ενότητα 6

Τεχνολογία Περιβάλλοντοσ: Διαχείριςθ Υγρών Αποβλιτων Ενότθτα 9: Απολφμανςθ. Κορνάροσ Μιχαιλ Πολυτεχνικι Σχολι Τμιμα Χθμικών Μθχανικών

8. Το μοντέλο συμβάντων του AWT

Επιχειρηςιακή Ζρευνα και εφαρμογζσ με την χρήςη του λογιςμικοφ R

Επιχειρηςιακή Έρευνα και εφαρμογζσ με την χρήςη του λογιςμικοφ R

ΘΕΟΛΟΓΙΑ ΚΑΙΝΗΣ ΔΙΑΘΗΚΗΣ

Aντιπτζριςη (ΕΠ027) Ενότητα 5

Αναπαράςταςθ Γνϊςθσ ςτον Παγκόςμιο Ιςτό Ενότθτα 2: XML Δομθμζνα Ζγγραφα Ιςτοφ, Μζροσ 2 ο - DTD

Ειςαγωγή ςτη διδακτική των γλωςςών

Διαγλωςςική Επικοινωνία

Παράγοντεσ υμμετοχήσ Ενηλίκων ςτην Εκπαίδευςη: Ζητήματα Κινητοποίηςησ και Πρόςβαςησ ςε Οργανωμζνεσ Εκπαιδευτικζσ Δραςτηριότητεσ

ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΑΙΔΑΓΩΓΙΚΗΣ ΓΥΜΝΑΣΤΙΚΗΣ ΙΙ

Ψθφιακι Επεξεργαςία ιματοσ

ΘΕΟΛΟΓΙΑ ΚΑΙΝΗΣ ΔΙΑΘΗΚΗΣ

Οντοκεντρικόσ Προγραμματιςμόσ

Ψθφιακι Επεξεργαςία ιματοσ

Εκκλθςιαςτικό Δίκαιο ΙΙΙ (Μεταπτυχιακό)

Ελλθνικι Δθμοκρατία Σεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Ψθφιακά Ηλεκτρονικά. Ενότθτα 9 : Διαδικαςία φνκεςθσ Φϊτιοσ Βαρτηιϊτθσ

Επιχειρηςιακή Ζρευνα και εφαρμογζσ με την χρήςη του λογιςμικοφ R

Οντοκεντρικόσ Προγραμματιςμόσ

Παράγοντεσ υμμετοχήσ Ενηλίκων ςτην Εκπαίδευςη: Ζητήματα Κινητοποίηςησ και Πρόςβαςησ ςε Οργανωμζνεσ Εκπαιδευτικζσ Δραςτηριότητεσ

Ειςαγωγή ςτη διδακτική των γλωςςών

ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΑΙΔΑΓΩΓΙΚΗΣ ΓΥΜΝΑΣΤΙΚΗΣ ΙΙ

Οντοκεντρικός Προγραμματισμός

ΘΕΡΜΟΔΤΝΑΜΙΚΗ Ι. Ενότθτα 4: Πρϊτοσ Θερμοδυναμικόσ Νόμοσ. ογομϊν Μπογοςιάν Πολυτεχνικι χολι Σμιμα Χθμικϊν Μθχανικϊν

ΘΕΟΛΟΓΙΑ ΚΑΙΝΗΣ ΔΙΑΘΗΚΗΣ

ΠΟΤΔΗ ΣΗ ΤΝΟΠΣΙΚΗ ΠΑΡΑΔΟΗ ΚΑΙ ΣΗΝ Q

ΕΙΚΟΝΙΚΟ ΕΡΓΑΣΗΡΙΟ ΠΑΙΔΟΚΑΡΔΙΟΛΟΓΙΑ Ενότητα: Φυςιολογία εμβρυϊκισ και περιγεννθτικισ κυκλοφορίασ

Ψθφιακι Επεξεργαςία ιματοσ

Ειδικά Θζματα Βάςεων Δεδομζνων

Τεχνθτι Νοθμοςφνθ. Ενότθτα 2: Αναπαράςταςθ Γνϊςθσ και Συλλογιςμόσ. Ιωάννθσ Χατηθλυγεροφδθσ Πολυτεχνικι Σχολι Τμιμα Μθχανικϊν Η/Υ & Πλθροφορικισ

Ελλθνικι Δθμοκρατία Σεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Ψθφιακά Ηλεκτρονικά. Ενότθτα 11 : Μετρθτζσ Ριπισ Φϊτιοσ Βαρτηιϊτθσ

ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΑΙΔΑΓΩΓΙΚΗΣ ΓΥΜΝΑΣΤΙΚΗΣ ΙΙ

ΔΙΔΑΚΣΙΚΗ ΣΗ ΠΑΙΔΑΓΩΓΙΚΗ ΓΤΜΝΑΣΙΚΗ ΙΙ

ΘΕΟΛΟΓΙΑ ΚΑΙΝΗΣ ΔΙΑΘΗΚΗΣ

Διδακτικι τθσ Γλϊςςασ Ι

Διδακτικζσ Προςεγγίςεισ Διερευνθτικισ Μάκθςθσ

Aντιπτζριςη (ΕΠ027) Ενότητα 9

Τεχνολογία Περιβάλλοντοσ: Διαχείριςθ Στερεών Αποβλιτων Ενότθτα 4: Μθχανικόσ Διαχωριςμόσ. Κορνάροσ Μιχαιλ Πολυτεχνικι Σχολι Τμιμα Χθμικών Μθχανικών

ΠΟΤΔΗ ΣΗ ΤΝΟΠΣΙΚΗ ΠΑΡΑΔΟΗ ΚΑΙ ΣΗΝ Q

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

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

Αναπαράςταςθ Γνϊςθσ ςτον Παγκόςμιο Ιςτό Ενότθτα 2: XML Δομθμζνα Ζγγραφα Ιςτοφ, Μζροσ 1 ο - XML

Βάςεισ Δεδομζνων Λ. Ενότθτα 8: SQL Γλώςςα χειριςμοφ δεδομζνων. Δρ. Σςιμπίρθσ Αλκιβιάδθσ Σμιμα Μθχανικών Πλθροφορικισ ΣΕ

Τεχνθτι Νοθμοςφνθ. Ενότθτα 4: Στρατθγικζσ Ελζγχου Επίλυςθσ. Ιωάννθσ Χατηθλυγεροφδθσ Πολυτεχνικι Σχολι Τμιμα Μθχανικϊν Η/Υ & Πλθροφορικισ

Ψθφιακά Ηλεκτρονικά. Ενότθτα 7 : Ελαχιςτοποίθςθ και κωδικοποίθςθ καταςτάςεων Φϊτιοσ Βαρτηιϊτθσ

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

Ειςαγωγι ςτισ Μεταφραςτικζσ Σπουδζσ

Ερμθνεία και ερμθνευτικι τθσ Καινισ Διακικθσ

Οντοκεντρικός Προγραμματισμός

ΘΕΡΜΟΔΤΝΑΜΙΚΗ Ι. Ενότθτα 11: Μεταπτϊςεισ πρϊτθσ και δεφτερθσ τάξθσ. ογομϊν Μπογοςιάν Πολυτεχνικι χολι Σμιμα Χθμικϊν Μθχανικϊν

Βάςεισ Δεδομζνων Ι. Ενότητα 7: Ειςαγωγή ςτην γλώςςα_sql. Δρ. Σςιμπίρθσ Αλκιβιάδθσ Σμιμα Μθχανικϊν Πλθροφορικισ ΣΕ

Aντιπτζριςη (ΕΠ027) Ενότητα 2

ΘΕΟΛΟΓΙΑ ΚΑΙΝΗΣ ΔΙΑΘΗΚΗΣ

5 ΜΕΘΟΔΟΙ - ΠΑΡΑΜΕΤΡΟΙ

ΠΟΤΔΗ ΣΗ ΤΝΟΠΣΙΚΗ ΠΑΡΑΔΟΗ ΚΑΙ ΣΗΝ Q

Week 12: GUIs with Swing

ΘΕΟΛΟΓΙΑ ΚΑΙΝΗΣ ΔΙΑΘΗΚΗΣ

κοποί ενότθτασ Σίτλοσ Ενότθτασ

Joomla! - User Guide

Μυκθτολογικζσ αςκζνειεσ δενδρωδϊν και αμπζλου

ΘΕΡΜΟΔΤΝΑΜΙΚΘ IΙ. Ενότθτα 12: Κρυοςκοπία Ηεςεοςκοπία Ωςμωτικι πίεςθ ογομϊν Μπογοςιάν Πολυτεχνικι χολι Σμιμα Χθμικϊν Μθχανικϊν

Εγχειρίδιο Χριςθσ τθσ διαδικτυακισ εφαρμογισ «Υποβολι και παρακολοφκθςθ τθσ ζγκριςθσ Εκπαιδευτικών Πακζτων»

Βάςεισ Δεδομζνων Ι. Ενότητα 12: Κανονικοποίηςη. Δρ. Τςιμπίρθσ Αλκιβιάδθσ Τμιμα Μθχανικών Πλθροφορικισ ΤΕ

Transcript:

Οντοκεντρικόσ Προγραμματιςμόσ Ενότθτα 4: JAVA: ΔΙΕΠΑΦΕ ΧΡΗΣΗ, ΓΡΑΦΙΚΑ, APPLETS Γραφικζσ Διεπαφζσ Χριςτθ - Swing Ιωάννθσ Χατηθλυγεροφδθσ Πολυτεχνικι χολι Σμιμα Μθχανικϊν Η/Τ & Πλθροφορικισ

ΓΡΑΦΙΚΕ ΔΙΕΠΑΦΕ ΧΡΗΣΗ Εργαλειοκικθ SWING

ΓΡΑΦΙΚΕ ΔΙΕΠΑΦΕ ΧΡΗΣΗ-SWING (1) Πλεονεκτιματα ζναντι του awt Περιςςότερα ςυςτατικά Επεκτεταμζνα χαρακτθριςτικά ςυςτατικϊν Καλφτερθ ζμφάνιςθ και αίςκθςθ Καλφτεροσ χειριςμόσ ςυμβάντων Πιό ςυμβατά προγράμματα ςτισ διάφορεσ πλατφόρμεσ (ςυςτατικά πλιρωσ υλοποιθμζνα ςε java) 3/53

ΓΡΑΦΙΚΕ ΔΙΕΠΑΦΕ ΧΡΗΣΗ-SWING (2) Ομοιότθτεσ-Διαφορζσ από το awt Η βαςικι δομι του προγράμματοσ παραμζνει. Οι βαςικζσ ζννοιεσ υποδοχζασ, τομζασ ςυςτατικό, και διαχειριςτισ διάταξθσ παραμζνουν. Η διαδικαςία προςκικθσ ςυςτατικϊν διαφζρει. Η χριςθ ενόσ ςυςτατικοφ παραμζνει ίδια. Αλλάηουν ελαφρϊσ τα ονόματα των κλάςεων (προςκικθ ενόσ «J» μπροςτά ςυνικωσ). Πακζτο: javax.swing 4/53

ΔΗΜΙΟΤΡΓΙΑ ΤΠΟΔΟΧΕΑ (1) Διαδικαςία (ίδια) Δθμιουργία υποκλάςθσ τθσ JFrame. Δθμιουργία ςτιγμιοτφπου τθσ υποκλάςθσ ςτθ μζκοδο main τθσ υποκλάςθσ. Δθμιουργοί τθσ JFrame JFrame() Δθμιουργία παρακφρου χωρίσ τίτλο JFrame (String) Δθμιουρ. παρακ. με τίτλο (Καλοφνται μζςω του super απο τον δθμιουργό τθσ υποκλάςθσ) 5/53

ΔΗΜΙΟΤΡΓΙΑ ΤΠΟΔΟΧΕΑ (2) Βαζηθή δοκή προγ/ηος: import java.awt.*; import javax.swing.*; υμπερίλθψθ εργαλειοκικθσ class MyApp extends JFrame { public MyApp (String title) { super(title); <δθμιουργία διαχειριςτι διάταξθσ> <δθμιουργία-προςκικθ ςυςτατικϊν> } } public static void main() { MyApp app1 = new MyApp ( Application Window ); <διαχείριςθ παρακφρου> } Δθμιουργόσ Δθμιουργία ςτιγμιοτφπου 6/53

ΒΑΙΚΟΙ ΜΕΘΟΔΟΙ ΧΕΙΡΙΜΟΤ ΠΑΡΑΘΤΡΟΤ pack() μικρότερο δυνατό μζγεκοσ παρακ. setvisible(boolean) εμφάνιςθ/απόκρυψθ παρακφρου setbounds(int, int, int, int) προςδιοριςμόσ κζςθσ ςτθν οκόνθ (x, y, w, h) 7/53

ΔΙΑΧΕΙΡΙΣΕ ΔΙΑΣΑΞΗ Κακοριςμόσ Διαχειριςτι Διάταξθσ Ιςχφουν τα του awt Επιπλζον υπάρχει διαχειριςτισ εμφάνιςθσ και αίςκθςθσ 8/53

ΠΡΟΘΗΚΗ ΤΣΑΣΙΚΩΝ-ΣΟΜΕΑ ΠΕΡΙΕΧΟΜΕΝΟΤ (1) Η προςκικθ ςυςτατικϊν δεν γίνεται απ ευκείασ ςτον κφριο υποδοχζα, αλλά ς εναν ενδιάμεςο υποδοχζα, που ονομάηεται τομζασ περιεχομζνου (content pane) Βαςικά, ο κφριοσ υποδοχζασ (πλαίςιο παρακφρου) αποτελείται από διάφορουσ τομείσ. Ο κεντρικόσ τομζασ είναι ο τομζασ περιεχομζνου 9/53

ΠΡΟΘΗΚΗ ΤΣΑΣΙΚΩΝ-ΣΟΜΕΑ Διαδικαςία ΠΕΡΙΕΧΟΜΕΝΟΤ (2) 1. Δθμιουργία ενόσ (ςτιγμιοτφπου) τομζα (δθμιουργόσ κλάςθσ JPanel). 2. Δθμιουργία και προςκικθ ςυςτατικϊν ςτον τομζα αυτό (add(component)). 3. Προςκικθ του τομζα (χριςθ add) ι κακοριςμόσ του τομζα ωσ τομζα περιεχομζνου (setcontentpane(container)) JFrame f = new JFrame (); JButton b = new JButton (); Container contentpane = f.getcontentpane (); contentpane.add(b ); Όλα τα ςυςτατικά ζχουν κοινι υπερκλάςθ τθν Jcomponent, απ όπου κλθρονομοφν μεκόδουσ (setenabled, setvisible, setsize κλπ) 10/53

ΕΣΙΚΕΣΕ Κιάζε: JLabel Δεκηοσργοί: JLabel(String) JLabel(String, int) (όπου int SwingConstants.LEFT/CENTER/RIGHT) JLabel(String, Icon, int) Δεκηοσργία εηθοληδίοσ ImageIcon ic1 = new ImageIcon("icon1.gif"); 11/53

ΠΛΗΚΣΡΑ/ΚΟΤΜΠΙΑ Κλάςθ: JButton Δθμιουργοί: JButton(String) JButton(Icon) JButton(String, Icon) Μζκοδοι: setlabel(string) getlabel() 12/53

ΠΛΑΙΙΑ ΕΛΕΓΧΟΤ Κλάςθ: JCheckbox Δθμιουργοί: JCheckbox(String) JCheckbox(String, boolean) JCheckbox(Icon) JCheckbox(Icon, boolean) JCheckbox(String, Icon) JCheckbox(String, Icon, boolean) Μζκοδοι: setenabled(boolean) 13/53

ΟΜΑΔΟΠΟΙΗΜΕΝΑ ΠΛΑΙΙΑ ΕΛΕΓΧΟΤ/ΚΟΤΜΠΙΑ ΕΠΙΛΟΓΗ Κλάςθ: Δθμιουργόσ: ButtonGroup ButtonGroup() Διαδικαςία: 1. Δθμιουργία ςτιγμιοτφπου ButtonGroup 2. Δθμιουργία πλαιςίων/κουμπιϊν 3. Προςκικθ πλαιςίων/κουμπιϊν: add(component) 14/53

ΠΑΡΑΔΕΙΓΜΑ Βήκα 1 ButtonGroup lang = new ButtonGroup(); Βήκα 2 JCheckbox c1 = new JCheckbox ("Pascal", false); JCheckbox c2 = new JCheckbox ("Java", false); Βήκα 3 lang.add(c1); lang.add(c2); 15/53

ΚΟΤΜΠΙΑ ΕΠΙΛΟΓΗ Κλάςθ: JRadioButton Δθμιουργοί: JRadioButton(String) JRadioButton(String, boolean) JRadioButton(Icon) JRadioButton(Icon, boolean) JRadioButton(String, Icon) JRadioButton(String, Icon, boolean) Μζκοδοι: setenabled(boolean) 16/53

ΛΙΣΕ ΕΠΙΛΟΓΗ (1) Κλάςθ: Δθμιουργόσ: JComboBox JComboBox() Διαδικαςία: 1. Δθμιουργία ςφνκετου πλαιςίου JComboBox langbox = new JComboBox(); 2. Προςκικθ ςτοιχείων langbox.additem( Pascal ); 3. Μετατροπι ςφνκετου πλαιςίου ςε λίςτα seteditable(false); 17/53

ΛΙΣΕ ΕΠΙΛΟΓΗ (2) Μέζοδοη: getitem(int) Επιςτρζφει το ςτοιχείο ςτθ κζςθ int (πρϊτθ κζςθ: 0) getitemcount() Επιςτρζφει τον αρικμό των ςτοιχείων τθσ λίςτασ setselectedindex(int) Επιλζγει το ςτοιχείο ςτθ κζςθ int getselectedindex() Επιςτρζφει τθ κζςθ του τρζχοντοσ επιλεγμζνου ςτοιχείου getselecteditem() Επιςτρζφει το όνομα του τρζχοντοσ επιλεγμζνου ςτοιχείου 18/53

ΓΡΑΜΜΕ ΚΤΛΙΗ Κιάζε: JScrollBar Δεκηοσργόί: JScrollBar(int) Επιλογι τιμισ με ολίςκθςθ ενόσ πλαιςίου. (int SwingConstants.HORIZONTAL/VERTICAL) JScrollBar(int, int, int, int, int) (int SwingConstants.HORIZONTAL/VERTICAL) (int αρχικι τιμι) (int μζγεκοσ πλαιςίου κφλιςθσ) (int ελάχιςτθ τιμι) (int μζγιςτθ τιμι) 19/53

ΠΕΔΙΑ ΚΕΙΜΕΝΟΤ (1) Κλάςθ: JTextField, JPasswordField Δθμιουργοί: JTextField(int) JTextField(String, int) JPasswordField(int) JPasswordField(String, int) (Χρήση της setechochar(char)) 20/53

ΠΕΡΙΟΧΕ ΚΕΙΜΕΝΟΤ Κλάςθ: Δθμιουργοί: JTextArea JTextArea(int, int) JTextArea(String) JTextArea(String, int, int) 21/53

ΚΑΘΟΡΙΜΟ ΑΙΘΗΗ ΚΑΙ ΕΜΦΑΝΙΗ Γίνεται μζςω τθσ κλάςθσ UIManager Επιλογι από τρεισ τφπουσ Σφποσ Windows Σφποσ Motif X-Windows Σφποσ Metal (java) (1) Η επιλογι γίνεται από τθ μζκοδο setlookandfeel(lookandfeel) Δθμιουργία ςτιγμιοτφπου LookAndFeel: (α) getcrossplatformlookandfeelclassname() (για επιλογι metal) (β) getsystemlookandfeelclassname() (για επιλογι αίςκθςθσ & εμφάνιςθσ του λειτουργικοφ ςυςτιματοσ που χρθςιμοποιείται) 22/53

ΚΑΘΟΡΙΜΟ ΑΙΘΗΗ ΚΑΙ ΕΜΦΑΝΙΗ (2) Η setlookandfeel χρειάηεται χειριςμό εξαιρζςεων. try { UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName(); } catch (Exception e){ System.err.println( Can t set look and feel: +e); } 23/53

ΝΕΑ ΣΟΙΧΕΙΑ: ΠΡΟΣΤΠΑ ΠΑΡΑΘΤΡΑ ΔΙΑΛΟΓΟΤ Κλάςθ: JOptionPane Τπάρχουν τζςςερισ τφποι παρακφρων διαλόγου Επιβεβαίωςθσ (ConfirmDialog) Ειςόδου (InputDialog) Μθνφματοσ (MessageDialog) Επιλογισ (OptionDialog) 24/53

ΝΕΑ ΣΟΙΧΕΙΑ: ΠΑΡΑΘΤΡΑ ΕΠΙΒΕΒΑΙΩΗ (1) Ερώτθςθ με κουμπιά Yes, No, Cancel Μζκοδοσ 1: showconfirmdialog(component, Object) Π.χ. Component: ο υποδοχζασ (null: κζντρο οκόνθσ) Object: String, ςυςτατικό ι Icon Επιςτρζφει: μία από τρεισ ακζραιεσ τιμζσ: (YES_OPTION, NO_OPTION, CANCEL_OPTION) int answer = JOptionPane.showConfirmDialog(null, "Are you sure to delete the file? "); 25/53

ΝΕΑ ΣΟΙΧΕΙΑ: ΠΑΡΑΘΤΡΑ ΕΠΙΒΕΒΑΙΩΗ (2) Ερώτθςθ με κουμπιά Yes, No, Cancel Μζκοδοσ 2: showconfirmdialog(component, Object, String, int, int) Π.χ. String: κείμενο γραμμισ τίτλου παρακφρου int: int: YES_NO_CANCEL_OPTION, YES_NO_OPTION ERROR_MESSAGE, INFORMATION_MESSAGE, PLAIN_MESSAGE, QUESTION_MESSAGE, WARNING_MESSAGE int answer = JOptionPane.showConfirmDialog(null, Error reading file, File Input Error, JOptionPane.YES_NO_OPTION, JOptionPane. ERROR_MESSAGE); 26/53

ΝΕΑ ΣΟΙΧΕΙΑ: ΠΑΡΑΘΤΡΑ ΕΙΟΔΟΤ Ερώτθςθ με πεδίο κειμζνου για απάντθςθ Μζκοδοσ 1: showinputdialog(component, Object) Επιςτρζφει: String (το κείμενο τθσ απάντθςθσ) Π.χ. string answer = JOptionPane.showInputDialog(null, "Enter your title:"); Μζκοδοσ 2: showinputdialog(component, Object, String, int) Π.χ. string answer = JOptionPane.showInputDialog(null, "Enter your title:", "Enter Title", JOptionPane. QUESTION_MESSAGE); 27/53

ΝΕΑ ΣΟΙΧΕΙΑ: ΠΑΡΑΘΤΡΑ ΜΗΝΤΜΑΣΟ Εμφάνιςθ πλθροφορίασ Μζκοδοσ 1: showmessagedialog(component, Object) Επιςτρζφει: Δεν επιςτρζφει τιμι Π.χ. JOptionPane.showMessageialog(null, "Title is missing"); Μζκοδοσ 2: showmessagedialog(component, Object, String, int) Π.χ. int answer = JOptionPane.showInputDialog(null, "The title is missing", "Missing Componnet Message", JOptionPane. WARNING_MESSAGE); 28/53

ΝΕΑ ΣΟΙΧΕΙΑ: ΠΑΡΑΘΤΡΑ ΕΠΙΛΟΓΗ (1) Πηο περίπιοθο από ηα άιια Σσλδσάδεη ταραθηερηζηηθά όιωλ ηωλ άιιωλ Μζκοδοσ: showoptiondialog(component, Object, String, int, int, Icon, Object[], Object) Icon: Object[]: Object: Επιςτρζφει: int ςτιγμιότυπο Icon αντί του υπάρχοντοσ πίνακασ που περιζχει τα ςυςτατικά που είναι οι επιλογζσ του παρακφρου. Η προεπιλεγμζνθ επιλογι, αν δεν χρθςιμοποιθκοφν τα YES_NO_CANCEL_OPTION, YES_NO_OPTION 29/53

ΠΑΡΑΘΤΡΑ ΕΠΙΛΟΓΗ (2) Π.χ. Jbutton fav [] = new Jbutton[3]; fav[0] = new Jbutton("C++"); fav[1] = new Jbutton("Java"); fav[2] = new Jbutton("None"); int answer = JOptionPane. showinputdialog(null, "What is your favorite programming language?", "Favorite Language", 0, JOptionPane.INFORMATION_MESSAGE, null, fav, fav[2]); 30/53

ΧΕΙΡΙΜΟ ΤΜΒΑΝΣΩΝ Μια κλάςθ που κζλει να αποκρίνεται ςε ςυμβάντα πρζπει να υλοποιεί αντίςτοιχθ διεπαφι (interface), που λζγεται ακροατισ ςυμβάντων (event listener). Κάκε ακροατισ χειρίηεται ζνα ςυγκεκριμζνο είδοσ ςυμβάντοσ Μια κλάςθ μπορεί να υλοποιιςει όςουσ ακροατζσ χρειάηεται. Διαδικαςία 1. Τλοποίθςθ ακροατι ςυμβάντων 2. υςχζτιςθ όποιων ςυςτατικϊν επικυμοφμε με ζνα ι περιςςότερουσ ακροατζσ ςυμβάντων 31/53

ΒΑΙΚΟ ΠΛΑΙΙΟ ΠΡΟΓ/ΣΟ import java.awt.gridlayout; import javax.swing.*; import java.awt.event; class MyApp extends JFrame { public MyApp (String title) { super(title); <δθμιουργία διαχειριςτι διάταξθσ> <δθμιουργία-προςκικθ ςυςτατικϊν>} public static void main() { MyApp app = new MyApp ("Application Window"); WindowListener L = new WindowAdapter() { public void windowclosing(windowevent e) { System.exit(0);}}; app.addwindowlistener(l); app.pack(); app.setvisible(true);} } Πακζτο χειριςμοφ ςυμβάντων. Κϊδικασ χειριςμοφ προτφπων ςυμβάντων: κλείνει τθν εφαρμογι όταν κλείνει το πλαίςιο (παράκυρο). 32/53

ΑΚΡΟΑΣΕ ΤΜΒΑΝΣΩΝ (1) ActionListener υμβάντα ενζργειασ: παράγονται από ενζργεια ςε ςυςτατικό, π.χ. πάτθμα ςε κουμπί AdjustmentListener υμβάντα ρφκμιςθσ: παράγονται από ρφκμιςθ ςυςτατικοφ π.χ. μετακίνθςθ γραμμισ κφλιςθσ FocusListener υμβάντα εςτίαςθσ: παράγονται από ςυςτατικό που παίρνει ι χάνει τθν εςτίαςθ, π.χ. πεδίο κειμζνου ItemListener υμβάντα ςτοιχείου: παράγονται όταν ζνα ςτοιχείο, π.χ. ςε πλαίςιο ελζγχου, αλλάηει KeyListener υμβάντα πλθκτρολογίου: παράγονται όταν ειςάγουμε δεδομζνα από το πλθκτρολόγιο 33/53

ΑΚΡΟΑΣΕ ΤΜΒΑΝΣΩΝ (2) MouseListener υμβάντα ποντικιοφ: παράγονται από πατιματα του ποντικιοφ MouseMotionListener υμβάντα κίνθςθσ ποντικιοφ: παράγονται από κίνθςθ του ποντικιοφ ςε ςυςτατικό) TextListener υμβάντα κειμζνου: παράγονται από μεταβολζσ ςε κείμενο WindowListener υμβάντα παρακφρου: παράγονται από μεταβολζσ ςε παράκυρο, π.χ. ελαχιςτοποίθςθ 34/53

ΤΧΕΣΙΗ ΑΚΡΟΑΣΩΝ ΤΜΒΑΝΣΩΝ ΜΕ ΤΣΑΣΙΚΑ (1) addactionlistener() Jbutton, JCheckBox, JTextField, JRadioButton addadjustmentlistener() JScrollBar addfocuslistener() όλα του Swing additemlistener() Jbutton, JCheckBox, JRadioButton addkeylistener όλα του Swing addmouselistener όλα του Swing addmousemotionlistener όλα του Swing addtextlistener JTextField) addwindowlistwner όλα των Jwindow, JFrame 35/53

ΤΧΕΣΙΗ ΑΚΡΟΑΣΩΝ ΤΜΒΑΝΣΩΝ ΜΕ ΤΣΑΣΙΚΑ (2) Όλεσ οι μζκοδοι add.. παίρνουν ζνα όριςμα: το αντικείμενο που «ακοφει» τα ςυμβάντα αυτοφ του είδουσ. Η χριςθ του this, ςτθν περίπτωςθ αυτι, δθλϊνει τθν τρζχουςα κλάςθ ωσ ακροατι. Π.χ. Jbutton b = new Jbutton("button"); b.addactionlistener(this); Μποροφμε να δθλϊςουμε και ζνα διαφορετικό αντικείμενο, αρκεί θ κλάςθ του να υλοποιεί τθ ςωςτι διεπαφι ακροατι. 36/53

ΜΕΘΟΔΟΙ ΧΕΙΡΙΜΟΤ ΤΜΒΑΝΣΩΝ Όταν ςυςχετίηουμε ζνα ακροατι ςυμβάντων (διεπαφι) με μια κλάςθ, τότε θ κλάςθ αυτι πρζπει να υλοποιεί όλεσ τισ μεκόδουσ τθσ αντίςτοιχθσ διεπαφισ. Κάκε τζτοια μζκοδοσ καλείται αυτόματα από το παρακυρικό ςφςτθμα όταν ςυμβεί αντίςτοιχο ςυμβάν. 37/53

ActionListener ActionListener Ζχει μια και μοναδικι μζκοδο, τθν actionperformed(). Κάκε κλάςθ που υλοποιεί τθν ActionListener πρζπει να υλοποιεί τθν παρακάτω μζκοδο: public void actionperformed(actionevent e){ } <τειρισμός σσμβάντος> H ActionEvent είναι υποκλάςθ τθσ EventObject (πακζτο java.awt.event) 38/53

getsource() Μπορεί να χρθςιμοποιθκεί για να προςδιορίςουμε το ςυςτατικό ςτο οποίο ςτάλκθκε ζνα ςυμβάν (ι με άλλα λόγια το ςυςτατικό που «άκουςε» το ςυμβάν). Π.χ. public void actionperformed(actionevent, e){ Object comp = e.getsource(); if (comp == quitbutton) quitprogram(); else if (comp == sortrecords) sortrecords(); } 39/53

instanceof Μπορεί να χρθςιμοποιθκεί για να ζλεγχο του είδουσ του ςυςτατικοφ: Π.χ. public void actionperformed(actionevent, e){ Object comp = e.getsource(); if (comp instanceof JTextField) calculatescore(); else if (comp instance of JButton) quitprogram(); } 40/53

AdjustementListener Ζχει μια και μοναδικι μζκοδο, τθν public void adjustmentvaluechanged(adjustmentevent e){ <τειρισμόςσσμβάντος> } 41/53

FocusListener Μζκοδοι διαςφνδεςθσ: public void FocusGained(FocusEvent e){ <τειρισμόςσσμβάντος> } public void FocusLost(FocusEvente ){ <τειρισμόςσσμβάντος> } 42/53

ItemListener JButton, JCheckBox, JComboBox, JRadioButton Όταν ζνα ςτοιχείο επιλζγεται ι αποεπιλζγεται Mζκοδοσ διαςφνδεςθσ: public void itemstatechanged(itemevent e){ <τειρισμόςσσμβάντος> } Για να κακορίςετε το ςτοιχείο όπου ςυνζβθ το ςυμβάν: μζκοδοσ getitem() ςτο αντικείμενο ItemEvent. 43/53

KeyListener Mζκοδοι διαςφνδεςθσ: public void keypressed(keyevent e){ <τειρισμόςσσμβάντος> } public void keyreleased(keyevent e){ <τειρισμόςσσμβάντος> } public void keytyped(keyevent e){ <τειρισμόςσσμβάντος> } Χριςθ μεκόδου getkeychar() του KeyEvent 44/53

MouseListener Μζκοδοι διαςφνδεςθσ: public void mouseclicked(mouseevent e) public void mouseentered(mouseevent e) public void mouseexited(mouseevent e) public void mousepressed(mouseevent e) public void mousereleased(mouseevent e) Χριςθ μεκόδου getpoint() του MouseEvent 45/53

MouseMotionListener Mζκοδοι διαςφνδεςθσ: public void mousedragged(mouseevent e) public void mousemoved(mouseevent e) Χριςθ μεκόδων του MouseEvent 46/53

WindowListener Mζκοδοι διαςφνδεςθσ: public void windowactivated(windowevent e) public void windowclosed(windowevent e) public void windowclosing(windowevent e) public void windowdeactivated(windowevent e) public void windowdeiconified(windowevent e) public void windowiconified(windowevent e) public void windowopened(windowevent e) 47/53

Χρθματοδότθςθ Σο παρόν εκπαιδευτικό υλικό ζχει αναπτυχκεί ςτo πλαίςιo του εκπαιδευτικοφ ζργου του διδάςκοντα. Σο ζργο «Ανοικτά Ακαδθμαϊκά Μακιματα ςτο Πανεπιςτιμιο Ακθνών» ζχει χρθματοδοτιςει μόνο τθν αναδιαμόρφωςθ του εκπαιδευτικοφ υλικοφ. Σο ζργο υλοποιείται ςτο πλαίςιο του Επιχειρθςιακοφ Προγράμματοσ «Εκπαίδευςθ και Δια Βίου Μάκθςθ» και ςυγχρθματοδοτείται από τθν Ευρωπαϊκι Ζνωςθ (Ευρωπαϊκό Κοινωνικό Σαμείο) και από εκνικοφσ πόρουσ. 48/53

θμείωμα Ιςτορικοφ Εκδόςεων Ζργου Σο παρόν ζργο αποτελεί τθν ζκδοςθ 1.0. 49/53

θμείωμα Αναφοράσ Copyright: Πανεπιςτιμιον Πατρϊν, Ιωάννθσ Χατηθλυγεροφδθσ, 2015. «Οντοκεντρικόσ Προγραμματιςμόσ». Ζκδοςθ: 1.0. Πάτρα 2015. Διακζςιμο από τθ δικτυακι διεφκυνςθ: https://eclass.upatras.gr/courses/ceid1105/ 50/53

θμείωμα Αδειοδότθςθσ Σο παρόν υλικό διατίκεται με τουσ όρουσ τθσ άδειασ χριςθσ Creative Commons Αναφορά, Μθ Εμπορικι Χριςθ Παρόμοια Διανομι 4.0 *1+ ι μεταγενζςτερθ, Διεκνισ Ζκδοςθ. Εξαιροφνται τα αυτοτελι ζργα τρίτων π.χ. φωτογραφίεσ, διαγράμματα κ.λ.π., τα οποία εμπεριζχονται ςε αυτό και τα οποία αναφζρονται μαηί με τουσ όρουσ χριςθσ τουσ ςτο «θμείωμα Χριςθσ Ζργων Σρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ωσ Μθ Εμπορικι ορίηεται θ χριςθ: που δεν περιλαμβάνει άμεςο ι ζμμεςο οικονομικό όφελοσ από τθν χριςθ του ζργου, για το διανομζα του ζργου και αδειοδόχο που δεν περιλαμβάνει οικονομικι ςυναλλαγι ωσ προχπόκεςθ για τθ χριςθ ι πρόςβαςθ ςτο ζργο που δεν προςπορίηει ςτο διανομζα του ζργου και αδειοδόχο ζμμεςο οικονομικό όφελοσ (π.χ. διαφθμίςεισ) από τθν προβολι του ζργου ςε διαδικτυακό τόπο Ο δικαιοφχοσ μπορεί να παρζχει ςτον αδειοδόχο ξεχωριςτι άδεια να χρθςιμοποιεί το ζργο για εμπορικι χριςθ, εφόςον αυτό του ηθτθκεί.

Διατιρθςθ θμειωμάτων Οποιαδιποτε αναπαραγωγι ι διαςκευι του υλικοφ κα πρζπει να ςυμπεριλαμβάνει: το θμείωμα Αναφοράσ το θμείωμα Αδειοδότθςθσ τθ διλωςθ Διατιρθςθσ θμειωμάτων το θμείωμα Χριςθσ Ζργων Σρίτων (εφόςον υπάρχει) μαηί με τουσ ςυνοδευόμενουσ υπερςυνδζςμουσ. 52/53

θμείωμα Χριςθσ Ζργων Σρίτων 53/53