Επικοινωνίας Java με Swing

Slides:



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

Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση.
Human Computer Interaction JAVA APPLETS JAVA AWT Μελισσόβας Δημήτρης Owda Zaher.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
JAVA: AWT, EVENTS, APPLETS Θ. Βαρβαρίγου Καθηγήτρια ΕΜΠ Τηλ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΕΠΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ – ΜΗΧΑΝΗΣ Εαρινό Εξάμηνο 2007 Παρουσίαση Εργαλείου Ανάπτυξης JBuilder Τσουρού Σταυρούλα, ΑΜ 708 Μαδεμλής Ιωάννης, ΑΜ 669.
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 9: Διανύσματα και λίστες.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 11: Intro to Applets Εβδομάδα 11: Εισαγωγή στα Applets.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 10: Graphical User Interfaces Εβδομάδα 10: Εισαγωγή στα Γραφικά Περιβάλλοντα.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 4: Exceptions Εβδομάδα 4: Εξαιρέσεις [Exceptions]
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
Power Point Κεφάλαιο 5.
Γραφικά Ενδιάμεσα Χρήστη στην Java
IT-SKILLS Διάλεξη Παρουσιάσεις (PowerPoint)
GUI Components and Events JavaMethods An Introduction to Object-Oriented Programming TM.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING Επισκόπηση.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) OOP Concepts and Object-Oriented Design.
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) Java Classes, Objects, και Events.
ΕΠΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ-ΜΗΧΑΝΗΣ Παρουσίαση της LessTif  Μαραγκός ΘοδωρήςΑ.Μ. 557  Καρκάνης ΗλίαςΑ.Μ. 539.
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
Παρουσίαση της Motif Αναστάσιος Κρυσταλλίδης Α.Μ.: 776 Δημήτρης Μπαμπαλίκης Α.Μ.: 941 Επικοινωνία Ανθρώπου-Μηχανής.
Εισαγωγή στη .net Visual C++
Abstract Window Toolkit (AWT) Πακέτο που περιέχει τις απαραίτητες κλάσεις για τη δημιουργία και Πακέτο που περιέχει τις απαραίτητες κλάσεις για τη δημιουργία.
DreamWeaver Παρουσίαση Εργαλείου για Ανάπτυξη Web-based GUIs 1.
Applets Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη δυνατότητα προβολής γραφικών και τη δυνατότητα υλοποίησης ενός γραφικού.
Διαχείριση γεγονότων (events) Γεγονότα: Κλήσεις που παράγονται από γραφικά στοιχεία (Components) π.χ. click ποντικιού, μετακίνηση ποντικιού Ακρόαση-Διαχείριση.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
Threads Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά η μία μετά.
Abstract Window Toolkit (AWT) Πακέτο που περιέχει τις απαραίτητες κλάσεις για τη δημιουργία και Πακέτο που περιέχει τις απαραίτητες κλάσεις για τη δημιουργία.
Applets Εκτελούνται από τον appletviewer και από Java enabled web browsers Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη.
Κεφάλαιο 4 Εξαιρέσεις. Όταν σε ένα πρόγραμμα συμβεί κάποιο λάθος, ο κώδικας εγείρει (throw) μία εξαίρεση. Στη Java oι εξαιρέσεις εκπροσωπούνται από αντικείμενα.
Κεφάλαιο 7 Abstract Window Toolkit (AWT). 2 Πακέτο που περιέχει τις απαραίτητες κλάσεις για τη δημιουργία και λειτουργία ενός γραφικού περιβάλλοντος εργασίας.
Κεφάλαιο 3 Τύποι Δεδομένων - Τελεστές. Πρωτογενείς τύποι δεδομένων: int, float, double, chars ΤύποςΌνομαΜέγεθος byte 8-bit signed, short 16-bit.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα.
ΕΡΓΑΣΤΗΡΙΟ – No.7 Ηλεκτρονικού Εμπορίου Ε-Επιχειρείν Δρ. Χρήστος Κ. Γεωργιάδης Java APIs για Web Services: ΧΜL και JSP.
Ειδικά Θέματα στον Προγραμματισμό Υπολογιστών
Γραφικά με Java 1 Διάλεξη 7Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο
Εισαγωγή στον Προγ/μό Η/Υ
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Κατανεμημένα Συστήματα
Software Engineering for Web Applications
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στον Προγ/μό Υπολογιστών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Wrapper Classes, Abstract Classes and Interfaces
Power Point (Συνέχεια).
Προγραμματισμός Διαδικτύου
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Web Services στη C# Εργαστήριο 3
Εισαγωγή στη Java Χαρακτηριστικά της Java Εργαλεία της Java
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Swing II Εβδομάδα Νο. 6.
Προχωρημένος Προγραμματισμός
ΥΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ
Προγραμματισμός κινητών συσκευών
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εξαιρέσεις [Exceptions]
Week 10: Graphical User Interfaces
Μεταγράφημα παρουσίασης:

Επικοινωνίας Java με Swing Week 12: GUIs with Swing Διαλεξη #18: Γραφικά Περιβάλλοντα Επικοινωνίας Java με Swing

Προγραμματισμός ΓΠΕ: ανασκόπηση Εισαγόμενα πακέτα Java «Στήσιμο»του αυτόνομου παράθυρου [frame] Συστατικά [components] Υποδοχείς [containers] δευτέρου επιπέδου Διάταξη [layout] Χειρισμός γεγονότων [events]

Εισαγόμενα πακέτα 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);

Άλλοι υποδοχείς πρώτου επιπέδου Αυτόνομο παράθυρο (κλάση JFrame) Παράθυρα διαλόγου (κλάση JDialog και υποκλάσεις) Χρησιμοποιήστε την κλάση JOptionPane για τα περισσότερα παράθυρα διαλόγου Applet (κλάση Applet και JApplet)

Πλήκτρα και ετικέτες [Buttons & Labels] JLabel label = new JLabel(”This is a label."); JButton button = new JButton("I'm a Swing button!"); button.setMnemonic(KeyEvent.VK_I); button.addActionListener(...an action listener...);

Αλλά συστατικά Ετικέτα [Label] Πλήκτρο [Button] Στοιχείο καταλόγου [MenuItem] Πεδίο κειμένου [TextField] Περιοχή κειμένου [TextArea] Κατάλογος [List] Συνδυασμός πλήκτρου-καταλόγου [ComboBox] Κυλιόμενος επιλογέας [Slider] Ράβδος προόδου [ProgressBar] Πίνακας [Table] Δένδρο [Tree] Επιλογέας αρχείου [FileChooser]

Συστατικά: ετικέτα Label, JLabel

Συστατικά: Πλήκτρο Button, JΒutton

Συστατικά: Στοιχεία καταλόγου MenuItem, JMenuItem

Συστατικά: Πεδίο κειμένου TextField, JTextField

Συστατικά: Περιοχή κειμένου TextArea, JTextArea

Συστατικά: Κατάλογος List, JList

Συστατικά: Συνδυασμός πλήκτρου-καταλόγου JComboBox

Συστατικά: Κυλιόμενος επιλογέας JSlider

Συστατικά: Ράβδος προόδου JProgressBar

Συστατικά: Πίνακας JTable

Συστατικά: Δένδρο JTree

Συστατικά: Επιλογέας αρχείου FileDialog, JFileChooser

Υποδοχείς δευτέρου επιπέδου Περιοχή περιεχομένων [Panel] (γενικής χρήσης) ScrollPane SplitPane TabbedPane

Υποδοχείς: ScrollPane ScrollPane, JScrollPane

Υποδοχείς: SplitPane JSplitPane

Υποδοχείς: TabbedPane JTabbedPane

Διαχειριστές Διάταξης [Layout managers] BorderLayout BoxLayout [Swing] FlowLayout GridLayout GridBagLayout

Διάταξη [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 ...

Χειρισμός γεγονότων [Handling Events] Δράσεις που καταλήγουν σε γεγονότα Τύπος ακροατή [Listener] Ο χρήστης πιέζει πλήκτρο, πιέζει το «Return» ActionListener ενώ πληκτρολογεί σε πεδίο κειμένου, ή επιλέγει ένα στοιχείο καταλόγου [menu item] Κλείσιμο αυτόνομου παράθυρου [frame] WindowListener Πίεση πλήκτρου ποντικιού ενώ ο δρομέας [cursor] MouseListener βρίσκεται πάνω από ένα συστατικό Κίνηση του δρομέα πάνω από ένα συστατικό MouseMotionListener Συστατικό γίνεται ορατό ComponentListener Συστατικό έχει «εστίαση πληκτρολογίου» FocusListener [keyboard focus] Η επιλογή από πίνακα ή λίστα μεταβάλλεται 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] ένα πλήκτρο ποντικιού μετά από την πίεση του πάνω από το ακροαζόμενο συστατικό.

MouseEvent methods int getClickCount() int getX() int getY() Κάθε μέθοδος σχετική με γεγονότα που αφορούν το ποντίκι (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.

Ο κώδικας του 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) {

Ακροατές [listeners] και προσαρμογείς [adapters] Οι ακροατές [listeners] είναι διαπροσωπίες [interfaces] Όταν υλοποιούμε έναν ακροατή όλες οι μέθοδοι της διαπροσωπίας πρέπει να υλοποιηθούν Όταν δεν χρειάζονται όλες, είναι βολικό να χρησιμοποιήσουμε έναν προσαρμογέα [adapter] Οι προσαρμογείς είναι κλάσεις οι οποίες υλοποιούν όλες τις μεθόδους του ακροατή ως «άδειες» μεθόδους.

Παράδειγμα: 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)

Τα νήματα εκτέλεσης [threads] της Swing main thread GUI event handler thread screen painter thread Χειρισμός γεγονότων Απεικόνιση στην οθόνη