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

Σχετικά έγγραφα
Week 12: GUIs with Swing

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

Week 10: Graphical User Interfaces

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 12 : ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ GUI AWT ΚΑΙ

8.1 Top-Level Swing Containers και Swing Components

Μέρος ΙΙ Εφαρμογές γραφικών με το πακέτο swing - 5. Περιεχόμενα

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Graphical User Interfaces (GUI) SWING

Ειδικά Θέματα Προγραμματισμού

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

Περιεχόµενα. Πρόλογος...15

Ειδικά Θέματα Προγραμματισμού

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Graphical User Interfaces (GUI) SWING

Το επόμενο σχήμα εμφανίζει την ιεραρχία των GUI-components κλάσεων μαζί με κάποιες επιπλέον συμπληρωματικές κλάσεις που διαχειρίζονται ένα GUI.

Προγραμματισμός Διαδικτύου

Αντικειμενοστρεφής Προγραμματισμός

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13

Διδάσκων: Παναγιώτης Ανδρέου

Java Μέρος Ι Αντικειμενοστρεφής Προγραμματισμός - 7

VK -14/10/2016 Σελίς 1

Certified Java Programmer (CJP)

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

Εφαρμογή Αναζήτησης στον Ελληνικό Γεωγραφικό Χώρο

Οπτικός Προγραμματισμός σε NetBeans με Java Swing

9. Η βιβλιοθήκη Components του AWT

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

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

Βιοϊατρική τεχνολογία

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

VK -14/10/2016 Σελίς 1

Προγραμματισμός ΙΙ (Java) 8-9. Γραφικές Διεπαφές

7. Ανάπτυξη GUI σε Java

Σύνθεταγραφικάσ ε Java

Εργαστήριο Java. Αντικείµενο: Δίκτυα. Χειρισµός URLs. Άσκηση 1. Lab11. Πακέτο java.net

12.1 Εισαγωγή στο Swing

Εργαστήριο 7 - Άσκηση - Ανάλυση

Περιεχόμενα. Πρόλογος... 17

Εισαγωγικές έννοιες. Ιωάννης Γ. Τσούλος 2014

Εργαστήριο 6 - Άσκηση - Ανάλυση

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΕΙΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Ιανουάριος 2008 Οι απαντήσεις να είναι καθαρογραμμένες με ευδιάκριτους όλους του χαρακτήρες.

Εργαστήριο 3 - Άσκηση - Ανάλυση

ηµιουργία ιαλογικών Προγραµµάτων για το Web

Εργαστήριο 5 - Άσκηση - Ανάλυση

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

Περιεχόμενα. Πρόλογος 15

Εργαστήριο 1-1 η Άσκηση - Ανάλυση

Κλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων

Γραφικές ιεπαφές Χρήστη και Γραφικά

10.1 Γενικά για τα streams

Εισαγωγή. Κεφάλαιο 2: Βασικές έννοιες Java Κεφάλαιο 3: Χρήση της Java στις σελίδες σας Κεφάλαιο 4: Οι πρώτες σας μικροεφαρμογές...

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Graphical User Interfaces (GUI) SWING

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Επαναληπτικό φύλλο εργασίας 07/04/2009

Ask1, Ask2, Ask3. private void jbutton1actionperformed(java.awt.event.actionevent evt) { jlabel1.settext( "You pressed the 1st button" ); }

ΑΛΛΗΛΕΠΙ ΡΑΣΗ ΑΝΘΡΩΠΟΥ ΜΗΧΑΝΗΣ 6 o ΕΡΓΑΣΤΗΡΙO

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

Η ιευρυµένη Επιχείρηση Ενότητα Ηλεκτρονικής Μάθησης. «CourseLab» 3ο Φροντιστήριο. Ιωάννα Ταλάντη Υπ. ιδάκτωρ, Τµήµα ιοικητικής Επιστήµης & Τεχνολογίας

Περιεχόμενα. Πρόλογος 15

ΠΡΟΧΩΡΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Χαρίδημος Κονδυλάκης Εισαγωγή

Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Αντικειµενοστρεφής Προγραµµατισµός

Εκφωνήσεις ασκήσεων εργαστηρίου 2 (java threads)

Αρχές Τεχνολογίας Λογισμικού

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων

Wrapper Classes, Abstract Classes and Interfaces

Εργαστήριο 4 - Άσκηση - Ανάλυση

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

VK - 04/11/2016- [1]

(2) Thread Thread. Runnable. ( ) Java. Sample91. Thread Thread ) Thread. Runnable. run() / run() Runnnale ( ) MyRun implements Runnable Runnable

Γραφικά Περιβάλλοντα

Αντικειμενοστρεφής Προγραμματισμός

Ειδικά Θέματα Προγραμματισμού

Εργαστήριο 2 - Άσκηση - Ανάλυση

ΗΥ-252 Αντικειµενοστρεφής Προγραµµατισµός Βασίλης Χριστοφίδης. Επαναληπτική Εξέταση (3 ώρες) Ηµεροµηνία: 2 Σεπτεµβρίου 2005

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΕΙΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Ιανουάριος 2007 Οι απαντήσεις να είναι καθαρογραμμένες με ευδιάκριτους όλους του χαρακτήρες.

Κλάσεις. Τροποποιητές, ιασυνδέσεις, Πακέτα. Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Γενικά (για τις γραπτές εξετάσεις)

12.6. Άσκηση 6 - [αξιοποίηση γραφικής διεπαφής (GUI)] (έκδοση 2006)

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

ΚΕΦΑΛΑΙΑ attributes parameters

Εισαγωγή στη γλώσσα προγραμματισμού Java 69

9.1 JFC Swing. 9.1 JFC Swing Java (GUI) Java. Java Foundation Classes (JFC) Swing GUI. JFC Card Pile GameFrame GUI

Java ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Paul Deitel. Harvey Deitel. Εκδόσεις: Μ. Γκιούρδας ΟΓ ΟΗ ΕΚ ΟΣΗ. Deitel & Associates, Inc. Deitel & Associates, Inc.

HelloApplet. Παύλος Εφραιμίδης Java Applets 1

Εργαστήριο 8 - Άσκηση - Ανάλυση

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα.

Προγραμματισμός Διαδικτύου

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

Transcript:

Week 12: GUIs with Swing Προγραμματισμός ΓΠΕ: ανασκόπηση Εισαγόμενα πακέτα Java Διαλεξη #18: Γραφικά Περιβάλλοντα Επικοινωνίας Java με Swing «Στήσιμο»του αυτόνομου παράθυρου [frame] Συστατικά [components] Υποδοχείς [containers] δευτέρου επιπέδου Διάταξη [layout] Χειρισμός γεγονότων [events] Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 2 Εισαγόμενα πακέτα «Στήσιμο» του αυτόνομου παράθυρου import javax.swing.*; import java.awt.*; import java.awt.event.*; JFrame frame = new JFrame("SwingApplication"); Container contentpane = frame.getcontentpane(); contentpane.add(, BorderLayout.CENTER); //Finish setting up the frame, and show it. frame.addwindowlistener(); frame.pack(); frame.setvisible(true); Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 3 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 4 Άλλοι υποδοχείς πρώτου επιπέδου Πλήκτρα και ετικέτες [Buttons & Labels] Αυτόνομο παράθυρο (κλάση JFrame) JLabel label = new JLabel( This is a label."); Παράθυρα διαλόγου (κλάση JDialog και υποκλάσεις) Χρησιμοποιήστε την κλάση JOptionPane για τα περισσότερα παράθυρα διαλόγου JButton button = new JButton("I'm a Swing button!"); button.setmnemonic(keyevent.vk_i); button.addactionlistener(an action listener); Applet (κλάση Applet και JApplet) Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 5 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 6

Αλλά συστατικά Συστατικά: ετικέτα Ετικέτα [Label] Πλήκτρο [Button] Στοιχείο καταλόγου [MenuItem] Πεδίο κειμένου [TextField] Περιοχή κειμένου [TextArea] Κατάλογος [List] Συνδυασμός πλήκτρουκαταλόγου [ComboBox] Κυλιόμενος επιλογέας [Slider] Ράβδος προόδου [ProgressBar] Πίνακας [Table] Δένδρο [Tree] Επιλογέας αρχείου [FileChooser] Label, JLabel Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 7 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 8 Συστατικά: Πλήκτρο Συστατικά: Στοιχεία καταλόγου Button, JΒutton MenuItem, JMenuItem Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 9 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 10 Συστατικά: Πεδίο κειμένου Συστατικά: Περιοχή κειμένου TextField, JTextField TextArea, JTextArea Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 11 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 12

Συστατικά: Κατάλογος Συστατικά: Συνδυασμός πλήκτρου-καταλόγου List, JList JComboBox Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 13 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 14 Συστατικά: Κυλιόμενος επιλογέας Συστατικά: Ράβδος προόδου JSlider JProgressBar Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 15 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 16 Συστατικά: Πίνακας Συστατικά: Δένδρο JTable JTree Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 17 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 18

Συστατικά: Επιλογέας αρχείου Υποδοχείς δευτέρου επιπέδου Περιοχή περιεχομένων [Panel] (γενικής χρήσης) ScrollPane SplitPane FileDialog, JFileChooser TabbedPane Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 19 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 20 Υποδοχείς: ScrollPane Υποδοχείς: SplitPane ScrollPane, JScrollPane JSplitPane Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 21 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 22 Υποδοχείς: TabbedPane Διαχειριστές Διάταξης [Layout managers] BorderLayout BoxLayout [Swing] FlowLayout JTabbedPane Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 23 GridBagLayout GridLayout Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 24

Διάταξη [Layout] Ρύθμιση/εγκατάσταση του διαχειριστή διάταξης JPanel pane = new JPanel(); pane.setlayout(new BorderLayout()); Διάταξη: Όρια [Borders] pane.setborder(borderfactory.createemptyborder( 30, //top 30, //left 10, //bottom 30) //right ); Άλλοι τύποι ορίων BevelBorder LineBorder EtchedBorder CompoundBorder Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 25 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 26 Χειρισμός γεγονότων [Handling Events] Δράσεις που καταλήγουν σε γεγονότα Τύποςακροατή [Listener] Οχρήστηςπιέζει πλήκτρο, πιέζει το «Return» ενώ πληκτρολογεί σε πεδίο κειμένου, ήεπιλέγει ένα στοιχείο καταλόγου [menu item] Κλείσιμο αυτόνομου παράθυρου [frame] Πίεση πλήκτρου ποντικιού ενώ ο δρομέας [cursor] βρίσκεται πάνω από ένα συστατικό Κίνηση του δρομέα πάνω από ένα συστατικό Συστατικό γίνεται ορατό Συστατικό έχει «εστίαση πληκτρολογίου» [keyboard focus] Ηεπιλογή από πίνακα ή λίστα μεταβάλλεται ActionListener WindowListener MouseListener MouseMotionListener ComponentListener FocusListener ListSelectionListener Παράδειγμα: MouseListener public interface MouseListener extends EventListener void mouseclicked(mouseevent) Καλείται μόλις ο χρήστης πιέσει [clicks] στο ακροαζόμενο συστατικό. void mouseentered(mouseevent) Καλείται μόλις ο δρομέας εισέλθει στα όρια του ακροαζόμενου συστατικού. void mouseexited(mouseevent) Καλείται μόλις ο δρομέας εξέλθει από τα όρια του ακροαζόμενου συστατικού. void mousepressed(mouseevent) Καλείται μόλις ο χρήστης πιέσει [presses] ένα πλήκτρο ποντικιού ενώ ο δρομέας βρίσκεται πάνω από τοακροαζόμενοσυστατικό. void mousereleased(mouseevent) Καλείται μόλις ο χρήστης αποσυμπιέσει [releases] ένα πλήκτρο ποντικιού μετά από τηνπίεση του πάνω από το ακροαζόμενο συστατικό. Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 27 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 28 MouseEvent methods Κάθε μέθοδος σχετική με γεγονότα που αφορούν το ποντίκι (mouse event method) έχει μία παράμετρο: ένα αντικείμενο τύπου MouseEvent. Ηκλάση MouseEvent class ορίζει τις παρακάτω μεθόδους: int getclickcount() Επιστρέφει τον αριθμό των «γρήγορων» διαδοχικών «κλικ» του ποντικιού από τον χρήστη. Π.χ. επιστρέφει 2 για διπλό «κλικ». int getx() int gety() Point getpoint() Επιστρέφει την (x,y) συντεταγμένη όπου συνέβη το γεγονός (σχετικά με τοη συστατικό που προκάλεσε το γεγονός). boolean ispopuptrigger() Returns true if the mouse event should cause a popup menu to appear. Because popup triggers are platform dependent, if your program uses popup menus, you should call ispopuptrigger for all mouse-pressed and mouse-released events fired by components over which the popup can appear. Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 29 Ο κώδικας του MouseListener addmouselistener(this); public void mousepressed(mouseevent e) public void mousereleased(mouseevent e) public void mouseentered(mouseevent e) public void mouseexited(mouseevent e) public void mouseclicked(mouseevent e) Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 30

Ακροατές [listeners] και προσαρμογείς [adapters] Οι ακροατές [listeners] είναι διαπροσωπίες [interfaces] Όταν υλοποιούμε έναν ακροατή όλες οι μέθοδοι της διαπροσωπίας πρέπει να υλοποιηθούν Όταν δεν χρειάζονται όλες, είναι βολικό να χρησιμοποιήσουμε έναν προσαρμογέα [adapter] Οι προσαρμογείς είναι κλάσεις οι οποίες υλοποιούν όλες τις μεθόδους του ακροατή ως «άδειες» μεθόδους. Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 31 Παράδειγμα: MouseAdapter public class MouseAdapter implements MouseListener public void mousepressed(mouseevent e) public void mousereleased(mouseevent e) public void mouseentered(mouseevent e) public void mouseexited(mouseevent e) public void mouseclicked(mouseevent e) Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 32 Τα νήματα εκτέλεσης [threads] της Swing main thread GUI event handler thread Χειρισμός γεγονότων screen painter thread Απεικόνιση στην οθόνη Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 33