GUI Components and Events JavaMethods An Introduction to Object-Oriented Programming TM.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Ancient Greek for Everyone: A New Digital Resource for Beginning Greek Unit 4: Conjunctions 2013 edition Wilfred E. Major
Advertisements

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
Comparative vs. Superlative
Προβολή SPmC TURBOHALER ΑΣθΜΑ ΧΑΠ Subordinated pages Animation step Structure of the pages is clear No animation Simple animation.
What is the definition of differentiation?. Differentiation is an approach to teaching that attempts to ensure that all students learn well, despite their.
ENO S PRESENTATIONS BY ENOGREECE • Eno Greece s schools work in Enoprogramme 7 years. Lately they became very active because we managed to connect eno.
Εισαγωγή στη Βιοπληροφορική
Αναλογική- Ψηφιακή Φωτογραφία (Φιλμ-Αισθητήρας)
Strings.
NT Greek Grammar (Macnair Ch. 1-4)
ΣYMBOΛIKOΣ ΥΠΟΛΟΓΙΣΜΟΣ. ΣYMBOΛIKOΣ ΥΠΟΛΟΓΙΣΜΟΣ - Παράδειγμα %polynomial (Expression, Variable) polynomial (X, X). polynomial (Term, X) :- number (Term).
RIO DE JANEIRO FOR : ALEXANDRA GIOVANOPOYLOY DORA GARBOYNI ZOI DALIDOY ELINA DIMITRIADOY CHRISTINA DOYMPA.
Some information about our place. Greece is a small country on the south of Europe. The peninsula, where Greece is located, is called Balkan.
TEMPLATES, STL ΠΡΟΓΡΑΜΜΑΤΑ ΜΕ ΠΟΛΛΑ ΑΡΧΕΙΑ. ΑΝΑΚΕΦΑΛΑΙΩΣΗ.
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Τεχνολογία ΛογισμικούSlide 1 Έλεγχος Καταψύκτη (Ada) Τεχνολογία ΛογισμικούSlide 39 with Pump, Temperature_dial, Sensor, Globals, Alarm; use Globals ; procedure.
Ρυθμίσεις Android phones για MMS και Internet. 20/6/2013 Although every effort has been taken, this DRAFT technical paper has been prepared in good faith.
Ασκηση NextGen POS. Ι. Δεληγιάννης, Τμ. Πληροφορικής ΤΕΙ-Θ UNIFIED PROCESS - ΑΝΑΛΥΣΗ2.
Αντικειμενοστρεφής Προγραμματισμός Κλάσεις και άλλα θέματα Απόστολος Ζάρρας * βασισμένα και σε δουλειά του.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 11: Intro to Applets Εβδομάδα 11: Εισαγωγή στα Applets.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 10: Graphical User Interfaces Εβδομάδα 10: Εισαγωγή στα Γραφικά Περιβάλλοντα.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 4: Exceptions Εβδομάδα 4: Εξαιρέσεις [Exceptions]
Page  1 Ο.Παλιάτσου Γαλλική Επανάσταση 1 ο Γυμνάσιο Φιλιππιάδας.
Μεθοδολογίες Προγραμματισμού ΙΙ ΣΧΕΔΙΑΣΤΙΚΑ ΠΡΟΤΥΠΑ (2)
Πληροφοριακά Συστήματα και Βάσεις Δεδομένων
A model for Context-aware Databases. 19/04/20052 What is Context? Ο καθένας ορίζει το context διαφορετικά... “location, identities of nearby people and.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
Προγραμματισμός ΙΙ Διάλεξη #7: Περισσότερες Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
Γραφικά Ενδιάμεσα Χρήστη στην Java
Lesson 14: Around the city JSIS E 111: Elementary Modern Greek Sample of modern Greek alphabet, M. Adiputra,
ΠΟΛΥΜΟΡΦΙΣΜΟΣ, ΠΡΟΤΥΠΑ, ΚΑΘΙΕΡΩΜΕΝΗ ΒΙΒΛΙΟΘΗΚΗ ΠΡΟΤΥΠΩΝ Polymorphism, Templates, Standard Template Library (STL)
Lesson 18b: At the University JSIS E 111: Elementary Modern Greek Sample of modern Greek alphabet, M. Adiputra,
Comenius E.R.G.O Equal Rights Great Opportunities Presentation by the Greek Delegation to Hungary.
Lesson 21b: Nature II JSIS E 111: Elementary Modern Greek Sample of modern Greek alphabet, M. Adiputra,
1/6/2012 FASTER LOGO FASTER ICT – Financial and Accounting Seminars Targeting European Regions You are expected to prepare a ppt presentation for each.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING Επισκόπηση.
Lesson 20a: Nature I JSIS E 111: Elementary Modern Greek Sample of modern Greek alphabet, M. Adiputra,
Lesson 18c: At the University JSIS E 111: Elementary Modern Greek Sample of modern Greek alphabet, M. Adiputra,
Lesson 32a: Trasportation JSIS E 111: Elementary Modern Greek Sample of modern Greek alphabet, M. Adiputra,
Προγραμματισμός ΙΙ Διάλεξη #6: Απλές Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
Lesson 47-48a: Furniture JSIS E 111: Elementary Modern Greek Sample of modern Greek alphabet, M. Adiputra,
Lesson 52a: Nick’s mom JSIS E 111: Elementary Modern Greek Sample of modern Greek alphabet, M. Adiputra,
OUR CITY ATHENS GODS IN THE MYTH ATHENA ( Latin- Minerva ): The goddess of wisdom and strategy! She helped many heroes in mythology in her own way. Athena.
1 Please include the following information on this slide: Παρακαλώ, συμπεριλάβετε τις παρακάτω πληροφoρίες στη διαφάνεια: Name Giannakodimou Aliki Kourkouta.
Σοφία Τζελέπη, App Inventor ΜΕΡΟΣ B’ Σοφία Τζελέπη,
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
Δομές Δεδομένων 1 Στοίβα. Δομές Δεδομένων 2 Στοίβα (stack)  Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή – πρώτη εξαγωγή)  Περιορισμένος.
 You need textbooks today. If they are in your locker – get them NOW!  Don’t ask once class has started…
MARIE CURIE  Project about Project  Πειραματικό Λύκειο Πανεπιστημίου Μακεδονίας  Team 3 Ξενίδης Γιώργος Βαρελτζίδου Μαρίνα Γαβριηλίδου Ελένη.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Δείκτες και Συμβολοσειρές (Pointers.
Προγραμματισμός ΙΙ Διάλεξη #5: Εντολές Ανάθεσης Εντολές Συνθήκης Δρ. Νικ. Λιόλιος.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Κληρονομικότητα.
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) OOP Concepts and Object-Oriented Design.
Κωδικός Θ: ΤΠ4003, Κωδικός Ε: ΤΠ4103 (ΜΕΥ/Υ) Ώρες (Θ - ΑΠ - Ε): Προαπαιτούμενα: ΤΠ2003,2103.
Γραφικά με Java 1 Διάλεξη 7Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο
Μαθαίνω με “υπότιτλους”
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
in Early Childhood Studies
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Υδρόβια Φυτά Θεοφανώ Κούλεντρου Rippling Water (Basic)
International Hospitality Management MC Employability Scheme
Swing II Εβδομάδα Νο. 6.
JAVA – Basic OOP Principles
Διάλεξη #10: Εκτέλεση Java χωρίς το BlueJ
Week 10: Graphical User Interfaces
Επικοινωνίας Java με Swing
Μανίκη Γαβριέλλα Μήτσης Σταύρος
Inheritance and Polymorphism
Μεταγράφημα παρουσίασης:

GUI Components and Events JavaMethods An Introduction to Object-Oriented Programming TM

15-2 Περιεχόμενα: l Πιο συστηματική εισαγωγή to basic swing components, their methods, and events they generate. l Τα Components που θα συζητηθούν: –JLabel –JButton –JToggleButton –JCheckBox –JComboBox –JSlider –JTextField –JPasswordField –JTextArea

15-3 GUI Components l Τα Components δημιουργούνται από constructors: l Για να γίνει χρήσιμο ένα component πρέπει να προστεθεί στο application’s “content pane” ή σε ένα άλλο component: JLabel guest = new JLabel ("Guest”); JPanel scorePanel = new JPanel(); scorePanel.add (guest);

15-4 GUI Events l Components (except JLabel) μπορεί να δημιουργήσει events. l Events are captured and processed by “listeners” — objects equipped για να διαχειρίζονται ένα συγκεκριμένο τύπο από events. l Διαφορετικοί τύποι events επεξεργάζονται από διαφορετικούς τύπους of listeners.

15-5 Interfaces l Ένα interface ορίζει μια ή περισσότερες public methods. l ένα interface είναι παρόμοιο με μια abstract class αλλά καμία από τις μεθόδους του μπορεί να έχει code. l μια class που ορίζεται να υλοποιεί ένα interface πρέπει να υλοποιήσει όλες τις μεθόδους του interface. l μια class μπορεί να κάνει implement διάφορα interfaces.

15-6 Interfaces (cont’d) l ένα object ενός class που κάνει implements ένα interface έχει ένα secondary data type αυτό του interface (επιπρόσθετα στον primary data type of the class). l Διάφοροι τύποι από “listeners” είναι interfaces. Το ίδιο object can serve as different types of listeners (as long as its class implements all the corresponding interfaces).

15-7 Listeners public class GoHandler implements ActionListener {... public void actionPerformed (ActionEvent e) {... }... JButton go = new JButton (“Go”); go.addActionListener (new GoHandler ()); Objects of this class are “GoHandlers” but also ActionListeners This method expects an ActionListener; a GoHandler object qualifies. This method is called automatically when the button is clicked

15-8 Listeners (cont’d) l Όταν υλοποιείται ένα event listener, οι programmers συχνά χρησιμοποιούν μια private embedded class που έχει πρόσβαση σε όλα τα fields of the surrounding public class. l αυτές, ονομάζονται inner classes και μπορούν να έχουν constructors και private fields, όπως όλες οι άλλες class. l Inner classes είναι προσβασιμες ΜΟΝΟ από της outer class τους.

15-9 Listeners (cont’d) public class MyPanel extends JPanel { private JButton go;... go = new JButton (“Go”); go.addActionListener (new GoHandler ());... private class GoHandler implements ActionListener { public void actionPerformed (ActionEvent e) { go.setText(“Stop”);... } go is accessible in constructors and methods of the inner class

15-10 Listeners (cont’d) l Δεν είναι αναγκαστικό να capture all events. l Αν δεν θες να ασχοληθείς με events από ένα component, απλά μην επισυνάψεις ένα listener σε αυτό. l Αν θες να capture events αλλά ξεχάσεις να κάνεις add a listener, τότε κανένα events will be captured (κοινή παράληψη).

15-11 Listeners (cont’d) l Listener methods παίρνουν αντίστοιχους type of event σαν argument. l Event objects έχουν χρήσιμες methods. Για παράδειγμα, getSource returns το object που παρήγαγε το event. l A MouseEvent έχει τις methods getX, getY.

15-12 Menus l Μπορείς να προσθέσεις ένα JMenuBar object σε JFrame ή JApplet. l Μπορείς να προσθέσεις JMenu objects σε JMenuBar. l Μπορείς να προσθέσεις και άλλα JMenus, JMenuItems, JCheckBoxMenuItems, JRadioButtonMenuItems, etc. to a JMenu.

15-13 JLabel Constructors: JLabel(String text); JLabel(ImageIcon icon); JLabel(String text, ImageIcon icon, SwingConstants.LEFT); // or CENTER, RIGHT, LEADING, TRAILING. Methods: void setText(String text); void setIcon(ImageIcon icon); Events: None

15-14 JButton Constructors: JButton(String text); JButton(ImageIcon picture); JButton(String text, ImageIcon picture); Methods: void addActionListener(ActionListener object) void setText(String text); void setActionCommand(String cmd); void setIcon(ImageIcon icon); void requestFocus(); Events: class... implements ActionListener { public void actionPerformed(ActionEvent e) { JButton b = (JButton)e.getSource(); String s = e.getActionCommand(); }

15-15 JCheckBox Constructors: JCheckBox(String text, boolean checked); JCheckBox(ImageIcon icon, boolean checked); JCheckBox(String text, ImageIcon icon, boolean checked); Methods: void addActionListener(ActionListener object) boolean isSelected() void setSelected(boolean checked) void setText(String text); void setIcon(ImageIcon icon); Events: class... implements ActionListener { public void actionPerformed(ActionEvent e) { JCheckBox b = (JCheckBox)e.getSource(); if (b == checkBox1 && b.isSelected())... }

15-16 Layouts l ένας layout manager είναι ένα είδος «στρατηγικής» (“strategy”) για τοποθέτηση components on the content pane or another component (usually a panel). l In Java, the content pane and any GUI component is a Container. l A layout is chosen by calling the container’s setLayout method.

15-17 Layouts (cont’d) l Layouts are used to achieve some degree of platform independence and scalability. l AWT/Swing support several layout managers. Here we consider four: FlowLayout, GridLayout, BorderLayout, BoxLayout. l These classes implement the java.awt.LayoutManager interface.

15-18 FlowLayout l τοποθετεί components σε μια γραμμή όσο χωράνε, έπειτα ξεκινά νέα γραμμή. l Χρησιμοποιεί “best judgement” για το spacing components. Centers by default. l Lets each component assume its natural (preferred) size. l Χρησιμοποιείται συχνά για τοποθέτηση buttons on panels.

15-19 FlowLayout (cont’d) Container c = getContentPane(); c.setLayout (new FlowLayout() ); c.add (new JButton ("Next Slide")); c.add (new JButton ("Previous Slide")); c.add (new JButton ("Back to Start")); c.add (new JButton ("Exit"));

15-20 GridLayout l Χωρίζει το panel into a grid όταν δίνεται ο αριθμός των γραμμών (rows) και των στιλών (columns). l τα components τοποθετούνται στα κελιά (cells) του grid. l Αναγκάζει το μέγεθος κάθε component να καλύπτει ολόκληρο το cell. l Προσθέτει επιπλέον spacing ανάμεσα στα cells.

15-21 GridLayout (cont’d) Container c = getContentPane(); c.setLayout (new GridLayout(3, 2, 10, 20 )); c.add (new JButton ("Next Slide")); c.add (new JButton ("Previous Slide")); c.add (new JButton ("Back to Start")); c.add (new JButton (”Last Slide")); c.add (new JButton ("Exit")); Extra space between the cells

15-22 BorderLayout l Divides the area into five regions and adds a component to the specified region. l Forces the size of each component to occupy the whole region. NORTH SOUTH CENTEREASTWEST

15-23 BorderLayout (cont’d) Container c = getContentPane(); c.setLayout(new BorderLayout() ); c.add (new JButton ("Next Slide"), BorderLayout.NORTH); c.add (new JButton ("Previous Slide"), BorderLayout.SOUTH); c.add (new JButton ("Back to Start"), BorderLayout.EAST); c.add (new JButton ("Last Slide"), BorderLayout.WEST); c.add (new JButton ("Exit"), BorderLayout.CENTER);

15-24 BoxLayout l Σε ένα horizontal box, τα components τοποθετούνται horizontally, από αριστερά προς τα δεξιά. l Σε ένα vertical box, τα components τοποθετούνται vertically, από πάνω προς τα κάτω. “Horizontal” or “vertical” has nothing to do with the shape of the box itself.

15-25 BoxLayout (cont’d) l BoxLayout είναι ο default type of layout για ένα Box container. l The idiom for working with boxes is slightly different: Box box1 = Box.createHorizontalBox(); box1. add (...); // add a spacer, 60 pixels: box1.add(Box.createHorizontalStrut (60); Box box2 = Box.createVerticalBox();...

15-26 BoxLayout (cont’d) Container c = getContentPane(); c.setLayout(new FlowLayout() ); Box box = Box.createVerticalBox(); box.add (new JButton ("Next Slide")); box.add (new JButton ("Previous Slide")); box.add (Box.createVerticalStrut (20) ); box.add (new JButton ("Exit")); c.add (box);

15-27 Default Layouts l Each component has a default layout manager, which remains in effect until the component’s setLayout method is called. l Some of the defaults are: Content pane BorderLayout JPanel FlowLayout Box BoxLayout