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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

1 Κεφάλαιο 18 Γραφικές ιεπαφές Χρήστη και Γραφικά Νοηµοσύνη είναι η ικανότητα να δηµιουργούµε τεχνητά αντικείµενα, ιδιαίτερα εργαλεία που φτιάχνουν εργαλεία. Henri Bergson Η ζωγραφική είναι µόνο µια γέφυρα που συνδέει το νου του ζωγράφου µε αυτόν του θεατή. Eugène Delacroix Μια εικόνα αξίζει όσο δέκα χιλιάδες λέξεις. Κινέζικη παροιµία Υπερβολή είναι να ζωγραφίζεις ένα φίδι και να του προσθέτεις πόδια. Παροιµία 18.1 Εισαγωγή Όλες οι εφαρµογές που εξετάσαµε µέχρι τώρα έπαιρναν την είσοδό τους είτε από τη γραµµή των εντολών είτε από το πληκτρολόγιο και εµφάνιζαν την έξοδό τους στην οθόνη µε απλό τρόπο. Η Java διαθέτει τα πακέτα java.awt, δηλαδή την εργαλειοθήκη αφηρηµένων παραθύρων (abstract window toolkit), και javax.swing που περιέχουν όλες τις τάξεις και τις διεπαφές, τα µέλη των οποίων βοηθούν τους προγραµµατιστές να ορίζουν Γραφικές ιεπαφές Χρήστη-Γ Χ (Graphical User Interfaces-GUIs) και να σχεδιάζουν γραφικά για τις εφαρµογές ή τις µικροεφαρµογές τους (βλ. Κεφ. 20). Οι Γ Χ κάνουν ευκολότερη την είσοδο των δεδοµένων και την εµφάνιση των αποτελεσµάτων σε διάφορα παράθυρα στην οθόνη. Γ Χ κτίζονται από συνθετικά µέρη (components) ή συστατικά που ονοµάζονται µερικές φορές µηχανηµατάκια των παραθύρων (window gadgets). Ένα συστατικό µιας Γ Χ είναι ένα αντικείµενο µε το οποίο ο χρήστης πιθανώς αλληλεπιδρά µέσω του ποντικιού, του πληκτρολογίου ή κάποιου άλλου τρόπου εισαγωγής δεδοµένων, για παράδειγµα µέσω αναγνώρισης φωνής. Τα συστατικά µιας Γραφικής ιεπαφής Χρήστη (Γ Χ) διευκολύνουν την είσοδο των δεδοµένων και τη µορφοποίηση ή την αναπαράσταση των αποτελεσµάτων που εµφανίζονται στην οθόνη. Μια τυπική τέτοια εµφάνιση περιέχει συνήθως: ένα παράθυρο µε µια ράβδο τίτλου (title bar), κουµπιά (buttons), τα οποία ο χρήστης 493

2 494 Προγραµµατισµός µε Java µπορεί να πιέσει µε το ποντίκι, ένα ή περισσότερα πεδία κειµένου (text fields), µέσα στα οπoία ο χρήστης µπορεί να πληκτρολογήσει κάποιο κείµενο, και πιθανώς ένα ή περισσότερα µενού, τα περιεχόµενα των οποίων µπορεί ο χρήστης να επιλέξει µε το ποντίκι ή το πληκτρολόγιο. Τα συστατικά που παρέχει το πακέτο java.awt θεωρούνται βαριά (heavyweight), µε την έννοια ότι εµφανίζονται µε διαφορετικό τρόπο στις διάφορες πλατφόρµες συστηµάτων. Σε αντίθεση, το πακέτο javax.swing περιέχει ένα σύνολο από ελαφρά συστατικά (lightweight components) που είναι σχεδόν όλα γραµµένα στην ίδια την Java και τα οποία, στο µεγαλύτερο δυνατό βαθµό, συµπεριφέρονται µε τον ίδιο τρόπο σ όλες τις πλατφόρµες υλισµικού και λειτουργικών συστηµάτων. Η παρακάτω ιεραρχία δείχνει τη συγγένεια µερικών από τις τάξεις των πακέτων java.awt και javax.swing. Με έντονα έχουν σηµειωθεί οι τάξεις που θα περιγράψουµε στο κεφάλαιο αυτό, καθώς και στο Κεφάλαιο 20. java.lang.object java.awt.component java.awt.container java.awt.window java.awt.frame javax.swing.jframe javax.swing.jcomponent javax.swing.jlabel javax.swing.jtextcomponent javax.swing.jtextfield javax.swing.jtextarea javax.swing.abstractbutton javax.swing.jbutton javax.swing.jpanel javax.swing.joptionpane javax.swing.jscrollpane java.awt.dialog javax.swing.jdialog java.awt.graphics java.awt.color java.awt.font java.awt.fontmetrics java.awt.panel java.applet.applet javax.swing.japplet Πίνακας Μερική ιεραρχία τάξεων των πακέτων java.awt και javax.swing.

3 Κεφάλαιο 18: Γραφικές ιεπαφές Χρήστη και Γραφικά Συστατικά: τάξη java.awt.component Η τάξη Component ορίζει όλες τις κοινές ιδιότητες και συµπεριφορές όλων των υποτάξεών της. Περιέχει µεθόδους που προσδιορίζουν το µέγεθος ενός συστατικού, το αν είναι ορατό ή όχι, τη γραµµατοσειρά των χαρακτήρων του, το χρώµα του και πιθανώς και κάποιους τρόπους µε τους οποίους αυτό µπορεί να ανταποκριθεί σε γεγονότα. Μερικές από τις µεθόδους τις τάξης Component είναι: public void setlocation (int x, int y) µετακινεί το συστατικό. Η νέα θέση της πάνω αριστερής γωνίας του δίνεται από τις συντεταγµένες x και y public void setbounds (int x, int y, int πλάτος, int ύψος) µετακινεί και αλλάζει το µέγεθος του συστατικού. Η νέα θέση της πάνω αριστερής γωνίας του δίνεται από τις συντεταγµένες x και y, ενώ το νέο του µέγεθος προσδιορίζεται από τις παραµέτρους πλάτος και ύψος public void setsize (int πλάτος, int ύψος) αλλάζει το µέγεθος του συστατικού, έτσι ώστε αυτό να έχει πλάτος πλάτος και ύψος ύψος public void setfont (Font f) προσδιορίζει τη µορφή της γραµµατοσειράς του συστατικού. Αν η παράµετρος f είναι ίση µε null, τότε το συστατικό κληρονοµεί τη µορφή της γραµµατοσειράς του γονικού του συστατικού public void setforeground (Color c) προσδιορίζει το προσκηνιακό χρώµα του συστατικού. Αν η παράµετρος c είναι ίση µε null, τότε το συστατικό κληρονοµεί το προσκηνιακό χρώµα του γονικού του συστατικού public void setbackground (Color c) προσδιορίζει το παρασκηνιακό χρώµα του συστατικού. Αν η παράµετρος c είναι ίση µε null, τότε το συστατικό κληρονοµεί το παρασκηνιακό χρώµα του γονικού του συστατικού public void setvisible (boolean b) κάνει ορατό ή αόρατο (εµφανίζει ή κρύβει) το συστατικό, ανάλογα µε το αν η τιµή της παραµέτρου b είναι ίση µε true ή false αντίστοιχα public void addkeylistener (KeyListener l)

4 496 Προγραµµατισµός µε Java προσθέτει τον ακροατή l για να ακούει γεγονότα του πληκτρολογίου από το συστατικό αυτό (βλ. Κεφ ). Αν η παράµετρος l είναι null δε γίνεται τίποτα και δε ρίχνεται καµία εξαίρεση public void addmouselistener (MouseListener l) προσθέτει τον ακροατή l για να ακούει γεγονότα του ποντικιού από το συστατικό αυτό (βλ. Κεφ και ). Αν η παράµετρος l είναι null δε γίνεται τίποτα και δε ρίχνεται καµία εξαίρεση public void addmousemotionlistener (MouseMotionListener l) προσθέτει τον ακροατή l για να ακούει γεγονότα κίνησης του ποντικιού από το συστατικό αυτό (βλ. Κεφ και ). Αν η παράµετρος l είναι null δε γίνεται τίποτα και δε ρίχνεται καµία εξαίρεση public void paint (Graphics g) ζωγραφίζει το συστατικό. Η µέθοδος αυτή καλείται αυτόµατα από το σύστηµα όταν το συστατικό πρέπει να ζωγραφιστεί, για παράδειγµα όταν αυτό εµφανίζεται για πρώτη φορά ή όταν αυτό έχει καταστραφεί και χρειάζεται να διορθωθεί. Παίρνει ως παράµετρο µια αναφορά της αφηρηµένης τάξης Graphics του πακέτου java.awt, η οποία προσδιορίζει την περιοχή στην οποία πρέπει να ζωγραφιστεί το συστατικό (βλ. και Κεφ. 18.7, παρακάτω). Εφόσον η µέθοδος paint καλείται αυτόµατα από το σύστηµα, πολύ σπάνια χρειάζεται να κληθεί άµεσα από τον προγραµµατιστή συνήθως ακυρώνεται από αυτόν. Αν ο προγραµµατιστής επιθυµεί να ξαναζωγραφίσει το συστατικό, τότε καλεί τη µέθοδο repaint() (βλ. παρακάτω) public void repaint () ξαναζωγραφίζει το συστατικό. Αν το συστατικό είναι ελαφρύ, τότε η κλήση της µεθόδου αυτής προκαλεί την κλήση της µεθόδου paint του συστατικού το συντοµότερο δυνατόν. ιαφορετικά αν το συστατικό είναι βαρύ η κλήση της µεθόδου αυτής προκαλεί την κλήση της µεθόδου update του συστατικού το συντοµότερο δυνατόν και public void update (Graphics g) ενηµερώνει το συστατικό. Αν το συστατικό είναι βαρύ, τότε η κλήση της µεθόδου update είναι το αποτέλεσµα µιας κλήσης της µεθόδου repaint. Η µέθοδος update καλεί τη µέθοδο paint του συστατικού για να ξανασχεδιάσει το συστατικό. Παίρνει ως παράµετρο µια αναφορά της αφηρηµένης τάξης Graphics, η οποία προσδιορίζει την περιοχή σχεδίασης του συστατικού. Όπως και η µέθοδος paint, έτσι και η µέθοδος update πολύ σπάνια χρειάζεται να κληθεί άµεσα από

5 Κεφάλαιο 18: Γραφικές ιεπαφές Χρήστη και Γραφικά 497 τον προγραµµατιστή, αν και η τελευταία µπορεί να ακυρωθεί για να ελαττώσει το τρεµοπαίξιµο κινούµενων γραφικών Υποδοχείς: Τάξη java.awt.container Ένα περιέχον µέρος (container) ή υποδοχέας είναι µια συλλογή από σχετικά συνθετικά µέρη ή συστατικά. Όπως µια τάξη που κληρονοµεί την τάξη Component είναι ένα συστατικό, έτσι και µια τάξη που κληρονοµεί την τάξη Container είναι ένας υποδοχέας. Εξετάζοντας την ιεραρχία του Πίνακα 18.1, θα διαπιστώσουµε ότι ένα αντικείµενο της τάξης Container (ένας υποδοχέας) είναι ένα αντικείµενο της τάξης Component (ένα συστατικό). Μ άλλα λόγια οι υποδοχείς είναι και αυτοί συστατικά, δηλαδή αντικείµενα της υποτάξης Container της τάξης Component του πακέτου java.awt. Έτσι, οι υποδοχείς όπως κι όλα τα άλλα συστατικά µπορούν να προστεθούν σ έναν άλλο υποδοχέα, δίνοντας µας τη δυνατότητα να δηµιουργήσουµε σύνθετες Γ Χ. Κάθε πρόγραµµα που παρέχει µια Γ Χ τύπου Swing πρέπει να περιέχει έναν τουλάχιστον βασικό (ριζικό, πρώτου επιπέδου) υποδοχέα του Swing, που υποστηρίζει τον τρόπο µε τον οποίο τα συστατικά του υποδοχέα σχεδιάζονται και αντιδρούν σε γεγονότα. Οι τρεις βασικοί υποδοχείς του Swing είναι αντικείµενα των τάξεων: JFrame υλοποιεί πλαίσιο, δηλαδή ένα κύριο παράθυρο JApplet υλοποιεί την περιοχή εµφάνισης µιας µικροεφαρµογής µέσα στο παράθυρο ενός φυλλοµετρητή και JDialog υλοποιεί ένα δευτερεύον παράθυρο, δηλαδή ένα παράθυρο που εξαρτάται από ένα άλλο παράθυρο. Οι υποδοχείς του Swing θεωρούνται ότι αποτελούνται από υαλοπίνακες (panes) 1. Στο βιβλίο αυτό θα ασχοληθούµε µόνο µε τους υποδοχείς JFrame, JPanel (Κεφ. 18.6) και JApplet (Κεφ. 20). Οι υποδοχείς JFrame και JApplet διαθέτουν έναν ειδικό υποδοχέα τον υαλοπίνακα των περιεχοµένων (content pane) τους. Τα συστατικά που περιέχονται στον υαλοπίνακα αυτόν εµφανίζονται αυτόµατα στην οθόνη κατά τη διάρκεια εκτέλεσης του προγράµµατος. Ο υαλοπίνακας περιεχοµένων είναι ένα αντικείµενο της τάξης Container του πακέτου java.awt. Έτσι, στις εφαρµογές που επεκτείνουν τον υποδοχέα JFrame -και στις µικροεφαρµογές (που επεκτείνουν τον υποδοχέα JApplet)-, τα συ- 1 Κάτι που χονδρικά σηµαίνει υποδοχείς µέσα σε υποδοχείς.

6 498 Προγραµµατισµός µε Java στατικά πρέπει να προστίθενται στον υαλοπίνακα περιεχοµένων του υποδοχέα. Αυτός είναι ένα αντικείµενο της τάξης Container. Η τάξη java.awt.container ορίζει όλες τις κοινές ιδιότητες και συµπεριφορές των αντικειµένων όλων των υποτάξεών της. Κληρονοµεί τις µεθόδους setsize και setvisible από την τάξη java.awt.component. Μερικές από τις άλλες µεθόδους της τάξης αυτής είναι: public Component add (Component συστατικό) προσθέτει το συστατικό συστατικό (συστατικό ή υποδοχέα) σ έναν υποδοχέα public void setlayout (διαχειριστής_διάταξης) προσδιορίζει το διαχειριστή διάταξης (layout manager) ο οποίος δίνει κατάλληλες διαστάσεις στα συστατικά µέρη του υποδοχέα και τα τοποθετεί σ ορισµένες θέσεις στην οθόνη, απαλλάσσοντας τον προγραµµατιστή από το να καθορίσει ο ίδιος τις λεπτοµέρειες αυτές. Η παράµετρος διαχειριστής_διάταξης είναι τύπου LayoutManager (βλ. Κεφ. 18.5, παρακάτω). Αν η παράµετρος αυτή είναι ίση µε null, τότε ο διαχειριστής_διάταξης θεωρείται ως απόλυτος (absolute) και ο χρήστης πρέπει να προδιαγράψει τα όρια (bounds) κάθε συστατικού µε τη µέθοδο setbounds που η τάξη java.awt.container κληρονοµεί από την τάξη java.awt.component public void paint (Graphics g) ζωγραφίζει τον υποδοχέα αυτόν. Για παράδειγµα, αν ο χρήστης καλύψει το παράθυρο ενός υποδοχέα στην οθόνη µ ένα άλλο ανοικτό παράθυρο και αργότερα ξεσκεπάσει το παράθυρο του υποδοχέα, τότε καλείται αυτόµατα η µέθοδος paint. Παίρνει ως παράµετρο µια αναφορά της τάξης Graphics του πακέτου java.awt η οποία παριστάνει την περιοχή που πρέπει να ζωγραφιστεί. Τέλος τάξη Container κληρονοµεί τη µέθοδο repaint() της τάξης Component και ακυρώνει τη µέθοδο update (Graphics g), έτσι ώστε αυτή να ενηµερώνει τον υποδοχέα Πλαίσια: Τάξη JFrame Τα προγράµµατα χρησιµοποιούν συχνά ένα αντικείµενο τύπου JFrame για να δηµιουργήσουν εφαρµογές βασισµένες σε Γ Χ. Το αντικείµενο αυτό παρέχει το χώρο µέσα στον οποίο εµφανίζεται η Γ Χ. Η τάξη JFrame παρέχει τις βασικές ιδιότητες και συµπεριφορές ενός παραθύρου, δηλαδή µια µπάρα τίτλου και κου- µπιά για ελαχιστοποίηση, µεγιστοποίηση και κλείσιµο του παραθύρου. Οι κατασκευαστές της τάξης JFrame είναι:

7 Κεφάλαιο 18: Γραφικές ιεπαφές Χρήστη και Γραφικά 499 public JFrame () κατασκευάζει ένα νέο πλαίσιο που είναι αρχικά αόρατο και public JFrame (String συµβολοσειρά) κατασκευάζει ένα νέο πλαίσιο που είναι αρχικά αόρατο και έχει ως τίτλο τη συµβολοσειρά. Μερικές από τις µεθόδους της τάξης JFrame είναι: public void settitle (String συµβολοσειρά) θέτει τη συµβολοσειρά σαν τίτλο του πλαισίου public String gettitle () επιστρέφει τον τίτλο του πλαισίου ως µια συµβολοσειρά public Container getcontentpane () επιστρέφει το αντικείµενο υαλοπίνακα των περιεχοµένων του πλαισίου αυτού public void setdefaultcloseoperation (int πράξη) προσδιορίζει την πράξη που εξ ορισµού θα λάβει χώρα όταν ο χρήστης κλείσει το πλαίσιο, δηλαδή πατήσει το κουµπί x που βρίσκεται στην πάνω δεξιά γωνία της ράβδου µενού του πλαισίου. Πιθανές ενέργειες είναι: JFrame.EXIT_ON_CLOSE η εφαρµογή τερµατίζεται καλώντας τη µέθοδο System.exit (η σταθερά αυτή πρέπει να χρησιµοποιείται µόνο για εφαρµογές) WindowConstants.DO_NOTHING_ON_CLOSE δεν κάνει τίποτα. Το γεγονός του κλεισίµατος του πλαισίου πρέπει να το χειριστεί το ίδιο το πρόγραµµα WindowConstants.HIDE_ON_CLOSE το πλαίσιο κρύβεται αυτόµατα, για να εµφανιστεί πιθανώς αργότερα WindowConstants.DISPOSE_ON_CLOSE το πλαίσιο κρύβεται και καταστρέφεται αυτόµατα (µετά από αυτό δεν είναι δυνατόν να ξαναεµφανιστεί). Ένα πλαίσιο κληρονοµεί τις µεθόδους setvisible, setsize, setlocation και repaint από την τάξη java.awt.component, καθώς και τη µέθοδο paint από την τάξη java.awt.container. Η τελευταία πρέπει να ακυρωθεί για να σχεδιάσουµε άµεσα στο παρασκήνιο του πλαισίου. Τέλος ένα πλαίσιο ακυρώνει τη µέθοδο update της τάξης Container, έτσι ώστε η τελευταία α- πλώς να καλεί τη µέθοδο paint(g) που κληρονοµείται από την τάξη Container.

8 500 Προγραµµατισµός µε Java 18.4 Συστατικά του swing: τάξη javax.swing.jcomponent Η αφηρηµένη τάξη JComponent είναι η υπερτάξη των περισσοτέρων συστατικών του πακέτου swing, τα ονόµατα των οποίων αρχίζουν µε το γράµµα 'J'. Στα παρακάτω θα εξετάσουµε µερικά από τα βασικά συστατικά που παρέχει η τάξη JComponent του πακέτου javax.swing. Οι υποτάξεις της τάξης JComponent υποστηρίζουν διαφάνεια (transparency). Μερικές από τις µεθόδους της τάξης JComponent είναι: public boolean setopaque (boolean b) καθιστά το συστατικό αδιαφανές, αν η παράµετρος b είναι true, και διαφανές, αν είναι false public void settooltiptext (String κείµενο) προσδιορίζει το κείµενο που θα εµφανιστεί, όταν ο δείκτης του ποντικιού παρα- µείνει για λίγο χρόνο πάνω στο συστατικό αυτό Ετικέτες: Τάξη JLabel Μια ετικέτα (label) είναι µια περιοχή στην οποία µπορεί να εµφανιστεί ένα σύντοµο κείµενο, µια εικόνα ή και τα δύο. Αρκετές φορές τοποθετείται δίπλα σε κάποιο άλλο συστατικό Γ Χ και περιέχει µια συµβολοσειρά ή και µια εικόνα που χρησιµοποιείται για να υποδεικνύει το σκοπό του τελευταίου. Κάθε ετικέτα έχει µια περιοχή εµφάνισης. Μερικοί από τους κατασκευαστές της τάξης JLabel είναι: public JLabel () δηµιουργεί µια νέα κενή δεν περιέχει ούτε κείµενο ούτε εικόνα ετικέτα που είναι κατακόρυφα κεντραρισµένη µέσα στην περιοχή εµφάνισής της. Μετά τη δηµιουργία της, µπορεί να τοποθετηθεί µία εικόνα (µε τη µέθοδο seticon, βλ. παρακάτω) ή/και κείµενο στην ετικέτα αυτή (µε την εντολή settext, βλ. παρακάτω). Η στοίχιση των (µελλοντικών) περιεχοµένων της (θα) είναι αριστερή. public JLabel (String συµβολοσειρά) δηµιουργεί µια νέα ετικέτα που περιέχει τη συµβολοσειρά. Η ετικέτα είναι στοιχισµένη ως προς την αρχική (leading) άκρη της περιοχής εµφάνισής της και κεντραρισµένη κατακόρυφα µέσα σε αυτήν public JLabel (String συµβολοσειρά, int οριζόντια_στοίχιση)

9 Κεφάλαιο 18: Γραφικές ιεπαφές Χρήστη και Γραφικά 501 δηµιουργεί µια νέα ετικέτα που περιέχει τη συµβολοσειρά. Η ετικέτα είναι κεντραρισµένη κατακόρυφα στην περιοχή εµφάνισής της. Η παράµετρος οριζόντια_στοίχιση είναι τύπου int και µπορεί να πάρει ως τιµή µια από τις παρακάτω σταθερές που είναι ορισµένες στη διεπαφή SwingConstants (που υλοποιεί η τάξη JLabel): Σταθερά Στοίχιση SwingConstants.LEFT προς τ αριστερά SwingConstants.CENTER στο κέντρο SwingConstants.RIGHT προς τα δεξιά SwingConstants.LEADING στην αρχή της περιοχής 2 SwingConstants.TRAILING στο τέλος της περιοχής. public JLabel (Icon εικόνα) δηµιουργεί µια ετικέτα που περιέχει την εικόνα. Η ετικέτα αυτή είναι κατακόρυφα και οριζόντια κεντραρισµένη στην περιοχή εµφάνισής της public JLabel (Icon εικόνα, int οριζόντια_στοίχιση) δηµιουργεί µια ετικέτα µε την εικόνα εικόνα. Η παράµετρος οριζόντια_- στοίχιση καθορίζει την οριζόντια στοίχιση της ετικέτας µέσα στην περιοχή εµφάνισής της και µπορεί να πάρει µια από τις τιµές που προσδιορίστηκαν παραπάνω. Η ετικέτα είναι κατακόρυφα κεντραρισµένη µέσα στην περιοχή εµφάνισής της public JLabel (String συµβολοσειρά, Icon εικόνα, int οριζόντια_στοίχιση) δηµιουργεί µια ετικέτα µε τη συµβολοσειρά, την εικόνα και την οριζόντια_στοίχιση που περνιούνται ως παράµετροι. Η ετικέτα είναι κατακόρυφα κεντραρισµένη µέσα στην περιοχή εµφάνισής της. Το κείµενο είναι στην τελική (trailing) άκρη της εικόνας. Μερικές από τις µεθόδους της τάξης JLabel είναι: public void sethorizontalalignment (int οριζόντια_στοίχιση) θέτει τη στοίχιση του τίτλου της ετικέτας κατά µήκος του άξονα των x, όπου ο- ριζόντια_στοίχιση είναι µια από τις παραπάνω τιµές 2 Με χρήση των σταθερών LEADING και TRAILING η διάταξη των συστατικών του Swing µπορεί να κάνει χρήση ενός αντικειµένου που ονοµάζεται ComponentOrientation (προσανατολισµός συστατικού). Όταν ένα τέτοιο αντικείµενο προσαρτάται σ ένα συστατικό του Swing, τότε η σταθερά LEADING σηµαίνει αριστερά σ ένα αριστερά προς τα δεξιά περιβάλλον (π.χ. ελληνική γλώσσα) και δεξιά σ ένα δεξιά προς αριστερά περιβάλλον (π.χ. αραβική γλώσσα). Το αντίθετο υπονοείται µε τη σταθερά TRAILING.

10 502 Προγραµµατισµός µε Java public int gethorizontalalignment () επιστρέφει τη στοίχιση του τίτλου της ετικέτας κατά µήκος του άξονα των x, ως µια τιµή από τις παραπάνω public void setverticalalignment (int κατακόρυφη_στοίχιση) θέτει τη στοίχιση του τίτλου της ετικέτας κατά µήκος του άξονα των y. Η παράµετρος κατακόρυφη_στοίχιση µπορεί να πάρει µια από τις παρακάτω τιµές: SwingConstants.TOP στοίχιση στην κορυφή SwingConstants.CENTER SwingConstants.BOTTOM στοίχιση στο κέντρο στοίχιση στη βάση public int getverticalalignment () επιστρέφει τη στοίχιση του τίτλου της ετικέτας κατά µήκος του άξονα των y, ως µια τιµή από τις παραπάνω public void sethorizontaltextposition (int οριζόντια_στοίχιση) µε βάση την τιµή της παραµέτρου οριζόντια_στοίχιση η οποία µπορεί να είναι µια από αυτές που αναφέρθηκαν και παραπάνω, καθορίζει την οριζόντια θέση του κειµένου της ετικέτας σχετικά µε τη θέση της εικόνας της public int gethorizontaltextposition () επιστρέφει τη σχετική µε τη θέση της εικόνας οριζόντια θέση του κειµένου της ετικέτας public void setverticaltextposition (int κατακόρυφη_στοίχιση) καθορίζει την κατακόρυφη θέση του κειµένου της ετικέτας σε σχέση µε τη θέση της εικόνας της. Η παράµετρος κατακόρυφη_στοίχιση µπορεί να πάρει µια από της τιµές που προσδιορίστηκαν παραπάνω public int getverticaltextposition () επιστρέφει τη σχετική µε τη θέση της εικόνας θέση του κειµένου της ετικέτας κατά τον κατακόρυφο άξονα public void settext (String συµβολοσειρά) τοποθετεί τη συµβολοσειρά µέσα στη ετικέτα public String gettext () επιστρέφει τη συµβολοσειρά που περιέχει η ετικέτα

11 Κεφάλαιο 18: Γραφικές ιεπαφές Χρήστη και Γραφικά 503 public void seticon (Icon εικόνα) τοποθετεί την εικόνα µέσα στην ετικέτα public Icon geticon () επιστρέφει την εικόνα που περιέχει η ετικέτα public void setlabelfor (Component συστατικό) θέτει την ετικέτα στο συστατικό. Η παράµετρος συστατικό µπορεί να είναι null, αν η συγκεκριµένη ετικέτα δεν αντιστοιχεί σε κάποιο συστατικό public Component getlabelfor () επιστρέφει το συστατικό στο οποίο αντιστοιχεί η ετικέτα αυτή. Η τιµή που επιστρέφει µπορεί να είναι null, αν η ετικέτα αυτή δεν αντιστοιχεί σε συστατικό. Παράδειγµα 18.1 // κάνει µια επίδειξη της χρήσης συστατικών τύπου JLabel import java.awt.*; import javax.swing.*; public class LabelTestApp extends JFrame { private JLabel label1, label2, label3, label4; private Icon goofy = new ImageIcon ("C:\\goofy.gif"); // στήσε τη Γ Χ public LabelTestApp() { super("πολλές Ετικέτες... "); // πάρε τον υαλοπίνακα των περιεχοµένων του πλαισίου Container c = getcontentpane(); c.setlayout (null); c.setbackground (Color.white); // (βλ. τάξη Color στο Κεφ.18.8, παρακάτω) // κατασκευαστής µε παράµετρο κείµενο label1 = new JLabel("Ετικέτα µε κείµενο"); label1.setbounds (30, 70, 200, 40); label1.setfont (new Font ("Courier new", Font.BOLD, 16)); label1.setbackground (Color.red.brighter()); label1.setforeground (Color.blue); label1.setopaque (true); c.add (label1);

12 504 Προγραµµατισµός µε Java // κατασκευαστής µε παραµέτρους εικόνα και στοίχιση label2 = new JLabel (goofy, SwingConstants.CENTER); label2.setbounds (250, 20, 200, 140); label2.setbackground (Color.cyan.darker()); label2.setopaque (true); c.add (label2); // κατασκευαστής µε παραµέτρους κείµενο, εικόνα // και στοίχιση label3 = new JLabel("Ετικέτα µε κείµενο και " + "εικόνα", goofy, SwingConstants.LEFT); label3.setbounds (10, 180, 350, 140); label3.setbackground (Color.orange); label3.setopaque (true); c.add (label3); // κατασκευαστής χωρίς παραµέτρους label4 = new JLabel(); // πρόσθεσε κείµενο στην ετικέτα label4.settext ("Ετικέτα µε εικόνα και κείµενο στο" + " κάτω µέρος της"); // πρόσθεσε εικόνα στην ετικέτα label4.seticon (goofy); label4.sethorizontaltextposition (SwingConstants.CENTER); label4.sethorizontalalignment (SwingConstants.CENTER); label4.setverticaltextposition (SwingConstants.BOTTOM); label4.setbackground (Color.green.darker()); label4.setbounds (60, 340, 350, 150); label4.setopaque (true); c.add (label4); setsize (470, 540); // εννοείται this., γιατί οι setvisible (true); // εντολές αυτές βρίσκονται µέσα // στη µέθοδο-κατασκευαστή του πλαισίου } // LabelTestApp // εκτέλεσε την εφαρµογή public static void main(string args[]) { LabelTestApp application = new LabelTestApp(); application.setdefaultcloseoperation (EXIT_ON_CLOSE);

13 Κεφάλαιο 18: Γραφικές ιεπαφές Χρήστη και Γραφικά 505 } // main } // LabelTestApp Σηµείωση Το αποτέλεσµα της εκτέλεσης του προγράµµατος της εφαρµογής αυτής (βλ. Εικόνα 1), καθώς και όλων των υπόλοιπων εφαρµογών και µικροεφαρµογών των Κεφαλαίων 18, 19, και 20 παρουσιάζονται στο έγχρωµο ένθετο που βρίσκεται στο τέλος του βιβλίου Πεδία κειµένου: Τάξη JΤextField Ένα πεδίο κειµένου (text field) είναι ένα συστατικό Γ Χ που χρησιµοποιείται είτε για την εισαγωγή µιας γραµµής κειµένου που πληκτρολογεί ο χρήστης είτε για να εµφανίσει µια γραµµή κειµένου ως έξοδο του προγράµµατος. Η γραµµή κειµένου πληκτρολογείται ή εµφανίζεται µέσα σ ένα ορθογώνιο. Όταν ο χρήστης πιέσει το πλήκτρο Enter (για να στείλει τη συµβολοσειρά που πληκτρολόγησε στο πρόγραµµα), συµβαίνει ένα γεγονός ενεργείας (action event). Αν το πρόγραµµα διαθέτει έναν ακροατή_ενέργειας συνδεδεµένο µε το πεδίο κειµένου, τότε αυτός µπορεί να αντιµετωπίσει το εν λόγω γεγονός. Μερικοί από τους κατασκευαστές της τάξης JTextField είναι οι παρακάτω: public JTextField () δηµιουργεί ένα νέο πεδίο κειµένου που είναι κενό, δηλαδή έχει 0 στήλες και περιέχει την κενή συµβολοσειρά public JTextField (String συµβολοσειρά) δηµιουργεί ένα νέο πεδίο κειµένου και τοποθετεί τη συµβολοσειρά σε αυτό. Ο αριθµός των στηλών του πεδίου τίθεται στο 0 public JTextField (int αριθµός_στηλών) δηµιουργεί ένα νέο κενό πεδίο κειµένου µε αριθµός_στηλών στήλες. public JTextField (String συµβολοσειρά, int αριθµός_στηλών) δηµιουργεί ένα νέο πεδίο κειµένου που περιέχει τη συµβολοσειρά και έχει αριθ- µός_στηλών στήλες. Μερικές από τις µεθόδους της τάξης JTextField είναι: public String gettext () επιστρέφει το κείµενο που βρίσκεται µέσα στο πεδίο κειµένου ως µια συµβολοσειρά

14 506 Προγραµµατισµός µε Java public void settext (String συµβολοσειρά) θέτει (εµφανίζει) τη συµβολοσειρά στο πεδίο κειµένου. Αν η συµβολοσειρά είναι κενή τότε διαγράφεται το κείµενο που υπήρχε µέσα στο πεδίο κειµένου public void seteditable (boolean b) αν η παράµετρος b είναι ίση µε false, ο χρήστης δεν µπορεί να τροποποιήσει τα περιεχόµενα του αντικειµένου τύπου JTextField. Αντίθετα, αν η b είναι true, τότε ο χρήστης µπορεί να πληκτρολογήσει µέσα στο πεδίο κειµένου public boolean iseditable () επιστρέφει true ή false, ανάλογα µε το αν τα περιεχόµενα του πεδίου κειµένου είναι τροποποιήσιµα public void addactionlistener (ActionListener ακροατής_ενέργειας) προσθέτει τον ακροατή_ενέργειας (βλ. Κεφ ) στο πεδίο κειµένου Περιοχές κειµένου: Τάξη JΤextArea Μια περιοχή κειµένου (text area) είναι παρόµοια µε ένα πεδίο κειµένου, αλλά επιτρέπει την εµφάνιση ή την εισαγωγή πολλών γραµµών κειµένου σ αυτή. Μερικοί από τους κατασκευαστές της είναι: public JΤextArea () δηµιουργεί µια νέα περιοχή κειµένου που είναι κενή, δηλαδή έχει 0 γραµµές, 0 στήλες και περιέχει την κενή συµβολοσειρά public JΤextArea (String συµβολοσειρά) δηµιουργεί µια νέα περιοχή κειµένου που περιέχει τη συµβολοσειρά. Το πλήθος των στηλών και γραµµών της περιοχής τίθεται στο 0 public JΤextArea (int αριθµός_γραµµών, int αριθµός_στηλών) δηµιουργεί µια νέα κενή περιοχή κειµένου, οι διαστάσεις της οποίας καθορίζονται από τους ακεραίους αριθµός_γραµµών και αριθµός_στηλών. Η τάξη JTextArea διαθέτει τις ίδιες µεθόδους -gettext, settext, seteditable και iseditable- µε την τάξη JTextField, γιατί οι δύο αυτές τάξεις είναι υποτάξεις της αφηρηµένης τάξης JTextComponent και κληρονοµούν τις µεθόδους που αναφέραµε στο Κεφάλαιο από αυτήν. Τέλος η τάξη JTextArea διαθέτει επίσης τη µέθοδο:

15 Κεφάλαιο 18: Γραφικές ιεπαφές Χρήστη και Γραφικά 507 public void append (String συµβολοσειρά) προσθέτει (επισυνάπτει) τη συµβολοσειρά στο τέλος ενός αντικειµένου τύπου JTextArea. Παράδειγµα 18.2 // δηµιουργεί µια εφαρµογή για την εισαγωγή των στοιχείων // (ονοµατεπώνυµο, διεύθυνση, τηλέφωνο) του χρήστη import java.awt.*; import javax.swing.*; public class Forma extends JFrame { JLabel namelabel = new JLabel ("Ονοµατεπώνυµο: "); JLabel addresslabel = new JLabel (" ιεύθυνση: "); JLabel telephonelabel = new JLabel ("Τηλέφωνο: "); JTextField namefield = new JTextField (); JTextArea addressarea = new JTextArea (); JTextField telephonefield = new JTextField (); public Forma() { super("εισαγωγή Στοιχείων"); Container ypodoxeas; ypodoxeas = getcontentpane (); ypodoxeas.setlayout (null); ypodoxeas.setbackground (new Color (38, 175, 249)); namelabel.setbounds (60, 30, 100, 20); ypodoxeas.add (namelabel); namefield.setbounds (180, 30, 200, 20); ypodoxeas.add (namefield); addresslabel.setbounds (60, 110, 100, 20); ypodoxeas.add (addresslabel); addressarea.setbounds (180, 100, 130, 40); ypodoxeas.add (addressarea); telephonelabel.setbounds (60, 200, 100, 20); ypodoxeas.add (telephonelabel); telephonefield.setbounds (180, 200, 100, 20); ypodoxeas.add (telephonefield); setsize (450, 300); // εννοείται this.setsize και setvisible (true); // this.setvisible, γιατί οι // εντολές αυτές βρίσκονται µέσα στον κατασκευαστή } // Forma public static void main (String[] args) { Forma input = new Forma();

16 508 Προγραµµατισµός µε Java input.setdefaultcloseoperation (EXIT_ON_CLOSE); } // main } // Forma Το αποτέλεσµα της εκτέλεσης του προγράµµατος της εφαρµογής αυτής παρουσιάζεται στην Εικόνα 2 του ένθετου του βιβλίου Κουµπιά: Τάξη JButton Ένα κουµπί (button) είναι µια ορθογώνια περιοχή που περιέχει έναν τίτλο και που µε το πάτηµά της (δηλαδή όταν ο χρήστης τοποθετήσει το δροµέα του ποντικιού πάνω στην περιοχή αυτή και πατήσει το αριστερό πλήκτρο του ποντικιού) δηµιουργείται ένα γεγονός (βλ. Κεφ. 19.1). Μερικοί από τους κατασκευαστές της τάξης JButton, όπως οι παρακάτω, είναι παρόµοιοι µε αυτούς της τάξης JLabel: public JButton () δηµιουργεί ένα νέο κουµπί χωρίς τίτλο και χωρίς εικόνα public JButton (String συµβολοσειρά) δηµιουργεί ένα νέο κουµπί που έχει ως τίτλο του τη συµβολοσειρά. public JButton (Icon εικόνα) δηµιουργεί ένα κουµπί που περιέχει την εικόνα public JButton (String συµβολοσειρά, Icon εικόνα) δηµιουργεί ένα νέο κουµπί που περιέχει τη συµβολοσειρά και την εικόνα. Παρόλο που έχουµε τη δυνατότητα να πατήσουµε τα κουµπιά που δηµιουργούµε µε τους παραπάνω κατασκευαστές, η ενέργειά µας αυτή δεν έχει κανένα αποτέλεσµα. Για να έχει αποτέλεσµα η ενέργειά µας θα πρέπει να χρησιµοποιήσουµε τη µέθοδο: public void addactionlistener (ActionListener ακροατής_ενέργειας) που προσθέτει τον ακροατή_ενέργειας στο κουµπί (βλ. Κεφ ). Ουσιαστικά ο ακροατής_ενέργειας αφουγκράζεται τα διάφορα γεγονότα που δηµιουργούνται από το κουµπί αυτό και δροµολογεί την αντιµετώπισή τους. Μερικές από τις άλλες µεθόδους που παρέχει η τάξη JButton είναι οι εξής: public void settext (String συµβολοσειρά) τοποθετεί τη συµβολοσειρά στο κουµπί

17 Κεφάλαιο 18: Γραφικές ιεπαφές Χρήστη και Γραφικά 509 public String gettext () επιστρέφει το κείµενο που περιέχεται στο το κουµπί public void seticon (Icon εικόνα) τοποθετεί την εικόνα στο κουµπί public Icon geticon () επιστρέφει την εικόνα του κουµπιού ιαχειριστές ιάταξης Η Java παρέχει διαχειριστές που µας βοηθούν να οργανώσουµε τη διάταξη των συστατικών µιας Γ Χ σ έναν υποδοχέα, για λόγους εµφάνισης στην οθόνη. Ένας διαχειριστής διάταξης (layout manager) µας δίνει τη δυνατότητα να τοποθετήσουµε εύκολα τα συστατικά µιας Γ Χ σ έναν υποδοχέα, χωρίς να ασχολούµαστε µε τις λεπτοµέρειες της θέσης και του µεγέθους του κάθε συστατικού. Αυτό µας δίνει τη δυνατότητα να συγκεντρωθούµε στη βασική εµφάνιση και αίσθηση (look and feel) αγνοώντας τις περισσότερες βαρετές λεπτοµέρειες. Επιπλέον, η χρήση ενός διαχειριστή διάταξης δίνει την ίδια εµφάνιση και αίσθηση σε διάφορα προγραµµατιστικά περιβάλλοντα, πράγµα που δεν επιτυγχάνεται πάντα, όταν χρησιµοποιούµε απόλυτες συντεταγµένες. Οι διαχειριστές διάταξης της Java, που περιγράφονται παρακάτω 3, (κληρονο- µούν την τάξη Object και) υλοποιούν τη διεπαφή η οποία ορίζει τις µεθόδους που χρησιµοποιεί ένας διαχειριστής διάταξης για να καθορίσει τη θέση και το µέγεθος των συστατικών µιας Γ Χ µέσα σ ένα υποδοχέα. Σε κάθε χρονική στιγµή ένας υποδοχέας µπορεί να έχει ένα µόνο διαχειριστή διάταξης. ιαφορετικοί υποδοχείς στο ίδιο πρόγραµµα µπορεί να χρησιµοποιούν διαφορετικούς διαχειριστές διάταξης, που προσδιορίζονται µε κλήση της µεθόδου της τάξης Container: setlayout (διαχειριστής_διάταξης) προσδιορίζει τη διάταξη των συστατικών ενός υποδοχέα. και layout.layoutcontainer (container); στοιχίζει ξανά τα συστατικά που έχουν προστεθεί στον υποδοχέα container. 3 Η Java παρέχει κι άλλους διαχειριστές διάταξης, όπως τους BoxLayout, CardLayout και GridBagLayout που δεν περιγράφονται στο βιβλίο αυτό.

18 510 Προγραµµατισµός µε Java FlowLayout Είναι ο απλούστερος διαχειριστής διάταξης της Java. Τοποθετεί τα συστατικά µιας Γ Χ σ έναν υποδοχέα από αριστερά προς τα δεξιά µε τη σειρά που αυτά προστίθενται σε αυτόν. Όταν φθάσει στο δεξί όριο του υποδοχέα, συνεχίζει να προσθέτει συστατικά από την επόµενη σειρά του. Είναι ο εξ ορισµού διαχειριστής διάταξης για τον υποδοχέα JPanel. Η τάξη FlowLayout επιτρέπει στα συστατικά µιας Γ Χ να είναι στοιχισµένα προς τα αριστερά, στο κέντρο ή προς τα δεξιά παρέχοντας τη µέθοδο κατασκευαστή: public FlowLayout (int στοίχιση) Η παράµετρος στοίχιση της οποίας µπορεί να έχει ως τιµή µια από τις παρακάτω σταθερές: Σταθερά Στοίχιση FlowLayout.LEFT αριστερά FlowLayout.CENTER κέντρο FlowLayout.RIGHT δεξιά Με τη µέθοδο: public void setalignment (int στοίχιση) παρέχει τη δυνατότητα καθορισµού της στοίχισης εκ των υστέρων. Και πάλι η παράµετρος στοίχιση µπορεί να έχει µια από τις παραπάνω τιµές. Αν δεν προσδιοριστεί η διάταξη των συστατικών µε κάποια από τις παραπάνω µεθόδους, τότε αυτή εξ ορισµού θεωρείται ως κεντρική. Παράδειγµα 18.3 // χρήση του διαχειριστή διάταξης FlowLayout import java.awt.*; import javax.swing.*; public class FlowCalculator extends JFrame { // ένας πίνακας κουµπιών private JButton buttons[] = new JButton [10]; public FlowCalculator () { super("υπολογιστής"); Container c = getcontentpane (); c.setlayout (new FlowLayout()); // δηµιουργεί κάθε ένα από τα 10 κουµπιά και το

19 Κεφάλαιο 18: Γραφικές ιεπαφές Χρήστη και Γραφικά 511 // προσθέτει στον υαλοπίνακα των περιεχοµένων του // πλαισίου for (int i = 0; i < 10; i++) { buttons[i] = new JButton (""+i); c.add (buttons[i]); } setsize (300, 170); setvisible (true); } // FlowCalculator public static void main (String args[]) { FlowCalculator calc = new FlowCalculator (); calc.setdefaultcloseoperation (EXIT_ON_CLOSE); } // main } // FlowCalculator Το αποτέλεσµα της εκτέλεσης του προγράµµατος της εφαρµογής αυτής παρουσιάζεται στην Εικόνα 3 του ένθετου του βιβλίου GridLayout Ο διαχειριστής διάταξης GridLayout διαιρεί έναν υποδοχέα σε πλαίσια, έτσι ώστε τα συστατικά που προστίθενται σ αυτόν να µπορούν να τοποθετηθούν οριζόντια σε γραµµές και κατακόρυφα σε στήλες. Όλα τα συστατικό που τοποθετούνται σε έναν υποδοχέα µε διαχειριστή διάταξης τύπου GridLayout έχουν το ίδιο πλάτος και ύ- ψος. Τα συστατικά προστίθενται αρχίζοντας από το πάνω αριστερά κελί του πλαισίου και συνεχίζουν αριστερά προς τα δεξιά µέχρι να γεµίσει η πρώτη γραµµή. Η διαδικασία αυτή συνεχίζεται για τη δεύτερη γραµµή κ.ο.κ. Η µέθοδος κατασκευαστής: public GridLayout (int γραµµές, int στήλες) δηµιουργεί ένα διαχειριστή GridLayout µε γραµµές γραµµές και στήλες στήλες. Μια µόνο το πολύ από τις παραµέτρους στήλες και γραµµές µπορεί να είναι 0, υπονοώντας ότι οσαδήποτε αντικείµενα µπορούν να τοποθετηθούν κατά µήκος µιας στήλης ή µιας γραµµής αντίστοιχα. Η µέθοδος κατασκευαστής: public GridLayout (int γραµµές, int στήλες, int x, int y) δηµιουργεί ένα διαχειριστή GridLayout µε γραµµές γραµµές, στήλες στήλες, x pixels (εικονοστοιχεία 4 ) οριζόντιο κενό χώρο µεταξύ των γραµµών και y 4 Βλ. Κάβουρα, Ι. Κ. Οργάνωση Συστηµάτων Υπολογιστών (Συστήµατα Υπολογιστών Τόµος Ι), εκδ. Κλειδάριθµος, Έκδοση 6 η, Αθήνα 2003, Κεφ

20 512 Προγραµµατισµός µε Java pixels κατακόρυφο κενό χώρο µεταξύ των στηλών. Και εδώ ισχύει ο περιορισµός σχετικά µε τις µηδενικές τιµές των παραµέτρων γραµµές και στήλες. Παράδειγµα 18.4 // χρήση του διαχειριστή διάταξης GridLayout import java.awt.*; import javax.swing.*; public class GridCalculator extends JFrame { // πίνακας κουµπιών private JButton buttons[] = new JButton [10]; public GridCalculator () { super("υπολογιστής"); Container c = getcontentpane (); c.setlayout (new GridLayout(4, 3)); // δηµιουργία και προσθήκη κουµπιών for (int i = 0; i < 10; i++) { buttons[i] = new JButton (""+i); c.add (buttons[i]); } setsize(300, 170); setvisible(true); } // GridCalculator public static void main (String args[]) { GridCalculator calc = new GridCalculator (); calc.setdefaultcloseoperation (EXIT_ON_CLOSE); } // main } // GridCalculator Το αποτέλεσµα της εκτέλεσης του προγράµµατος της εφαρµογής αυτής παρουσιάζεται στην Εικόνα 4 του ένθετου του βιβλίου BorderLayout Ο διαχειριστής BorderLayout τοποθετεί τα συστατικά µέσα σε πέντε περιοχές: NORTH (βορράς), SOUTH (νότος), EAST (ανατολή), WEST (δύση) και CEN- TER (κέντρο), όπου NORTH αντιστοιχεί στην κορυφή του υποδοχέα. Μπορούν να προστεθούν άµεσα µέχρι πέντε συστατικά, ένα για την κάθε περιοχή. Τα συστα-

21 Κεφάλαιο 18: Γραφικές ιεπαφές Χρήστη και Γραφικά 513 τικά που τοποθετούνται στις περιοχές NORTH και SOUTH επεκτείνονται οριζοντίως µέχρις τις πλευρές του υποδοχέα. Το ύψος των περιοχών αυτών είναι τόσο όσο και το ύψος των συστατικών που περιέχουν. Οι περιοχές EAST και WEST επεκτείνονται κατακόρυφα και έχουν πλάτος ίσο µε το πλάτος των συστατικών που τοποθετούνται σ αυτές. Το συστατικό που τοποθετείται στην περιοχή CENTER επεκτείνεται έτσι ώστε να γεµίσει όλο τον υπόλοιπο χώρο του υποδοχέα. Το συστατικό που τοποθετείται στην κάθε περιοχή µπορεί να είναι ένας υποδοχέας µέσα στον οποίο µπορούν να προστεθούν άλλα συστατικά. Αν και οι πέντε περιοχές είναι κατειληµµένες, τότε όλος ο χώρος του υποδοχέα καλύπτεται από συστατικά της Γ Χ. Αν οι περιοχές NORTH ή SOUTH δεν είναι κατειληµµένες, τα συστατικά στις περιοχές EAST, CENTER και WEST επεκτείνονται κατακόρυφα έτσι ώστε να γεµίσουν το χώρο που αποµένει. Αν οι περιοχές EAST ή WEST δεν είναι κατειληµµένες, το συστατικό στην περιοχή CENTER επεκτείνεται οριζόντια έτσι ώστε να γεµίσει το χώρο που αποµένει. Τέλος, αν η περιοχή CENTER δεν είναι κατειληµµένη, τότε αυτή παραµένει κενή (τα υπόλοιπα συστατικά δεν επεκτείνονται για να γεµίσουν το χώρο που αποµένει). Ο διαχειριστής BorderLayout είναι ο εξ ορισµού διαχειριστής του υαλοπίνακα περιεχοµένων των υποδοχέων τύπου JFrame και JApplet. Η εντολή: BorderLayout layout = new BorderLayout (x, y); προσδιορίζει το πλήθος x των εικονοστοιχείων που καταλαµβάνει ο χώρος µεταξύ των συστατικών που τοποθετούνται οριζοντίως (horizontal gap space) και το πλήθος y των εικονοστοιχείων που καταλαµβάνει ο χώρος µεταξύ των συστατικών που τοποθετούνται κατακόρυφα (vertical gap space), αντίστοιχα. Ο εξορισµού κατασκευαστής της τάξης BorderLayout δίνει χώρους πλάτους 0 εικονοστοιχείων µεταξύ των συστατικών. Η πρoσθήκη ενός συστατικού σ έναν υποδοχέα container στον οποίο έ- χουµε θέσει ως διαχειριστή διάταξης ένα αντικείµενο τύπου BorderLayout επιτυγχάνεται µε την εντολή: container.add (συστατικό, περιοχή); όπου περιοχή είναι µια από τις σταθερές BorderLayout.NORTH, Border_Layout.SOUTH, BorderLayout.EAST, BorderLayout.- WEST ή BorderLayout.CENTER. Αν δεν προσδιοριστεί η περιοχή στην παραπάνω µέθοδο, τότε το συστατικό τοποθετείται στην περιοχή BorderLayout.CENTER. Η προσθήκη περισσοτέ-

22 514 Προγραµµατισµός µε Java ρων από ένα συστατικών σε µια ορισµένη περιοχή έχει ως αποτέλεσµα να εµφανίζεται µόνο το τελευταίο συστατικό που έχει προστεθεί Πανό: Τάξη JPanel Σύνθετες Γ Χ απαιτούν να τοποθετούµε κάθε συστατικό σε µια ακριβή θέση ενός υποδοχέα. Οι διαπαφές αυτές αποτελούνται συχνά από πολλά πανό τα συστατικά κάθε ενός των οποίων είναι τοποθετηµένα σε µια ορισµένη διάταξη. Ένα πανό {panel) είναι ένας υποδοχέας µέσα στον οποίο µπορούν να προστεθούν συστατικά µιας Γ Χ. Τα πανό δηµιουργούνται από την τάξη JPanel µια υποτάξη της τάξης JComponent. Η τάξη JComponent κληρονοµεί την τάξη java.awt.container δηλαδή κάθε αντικείµενο τύπου JPanel είναι ένας υποδοχέας. Ένα αντικείµενο τύπου JPanel µπορεί να περιέχει οποιοδήποτε συστατικό Γ Χ. Έτσι µπορούµε να προσθέσουµε συστατικά, συµπεριλαµβανοµένων και άλλων πανό µέσα σ ένα αντικείµενο τύπου JPanel. Ο υποδοχέας JPanel µια ειδική περιοχή µέσα στην οποία µπορούν να σχεδιαστούν είτε γραφικά είτε συστατικά του Swing. Τα πανό είναι πολύ χρήσιµα όταν θέλουµε να εµφανίσουµε σωστά ταυτόχρονα γραφικά και συστατικά του Swing. Αρκεί να ετοιµάσουµε διαφορετικά πανό για το καθένα και να τα προσθέσουµε σε κάποιον άλλο υποδοχέα. Τα αντικείµενα τύπου JPanel είναι εξ ορισµού αδιαφανή. Η εντολή: JPanel panel = new JPanel(); δηµιουργεί ένα νέο πανό. Σε αντίθεση µε τους υποδοχείς JFrame και JApplet, τα πανό δε διαθέτουν υαλοπίνακα περιεχοµένων. Έτσι, η προσθήκη ενός συστατικού σ ένα πανό επιτυγχάνεται απλά µε την εντολή: panel.add (συστατικό); Όπως ήδη αναφέραµε, η µέθοδος add της τάξης Container προσθέτει ένα αντικείµενο της τάξης Component ή κάποιας υποτάξης της σ ένα αντικείµενο τύπου Container. Έτσι ένα αντικείµενο τύπου JPanel µπορεί να προστεθεί σ οποιοδήποτε αντικείµενο µιας υποτάξης της Component, και οποιοδήποτε αντικείµενο µιας υποτάξης της Component µπορεί να προστεθεί σ ένα αντικείµενο τύπου JPanel Όπως θα δούµε στο επόµενο κεφάλαιο, τα πανό είναι πολύ ευέλικτα. Τα προγράµµατα συχνά δηµιουργούν υποτάξεις της τάξης JPanel για τη δηµιουργία συγκεκριµένων περιοχών σχεδίασης και η δηµιουργία περιοχών που δέχονται γεγονότα του ποντικιού.

23 Κεφάλαιο 18: Γραφικές ιεπαφές Χρήστη και Γραφικά 515 Παράδειγµα 18.5 // επίδειξη χρήσης πανό import java.awt.*; import javax.swing.*; public class PanelApp extends JFrame { private JPanel buttonpanel; private JButton[] buttons; // στήσε τη Γ Χ public PanelApp() { super("επίδειξη ενός πανό"); // πάρε τον υαλοπίνακα των περιεχοµένων του // πλαισίου Container framecontainer = getcontentpane(); // δηµιούργησε έναν πίνακα πέντε κουµπιών buttons = new JButton[5]; // στήσε το πανό και καθόρισε τη διάταξή του buttonpanel = new JPanel(); buttonpanel.setlayout(new GridLayout(1, buttons.length)); // δηµιούργησε και πρόσθεσε τα κουµπιά στο πανό for (int i = 0; i < buttons.length; i++) { buttons[i] = new JButton("Button " + i); buttonpanel.add(buttons[i]); } // πρόσθεσε το πανό στον υαλοπίνακα των // περιεχοµένων του πλαισίου (ο εξ ορισµού // διαχειριστής του υαλοπίνακα περιεχοµένων των // υποδοχέων τύπου JFrame είναι BorderLayout) framecontainer.add (buttonpanel, BorderLayout.SOUTH); // εµφάνισε το πλαίσιο setsize(425, 150); setvisible(true); } // PanelApp // εκτέλεσε την εφαρµογή public static void main (String[] args)

24 516 Προγραµµατισµός µε Java { PanelApp appl = new PanelApp(); appl.setdefaultcloseoperation(jframe.exit_on_close); } // main } // PanelApp Το αποτέλεσµα της εκτέλεσης του προγράµµατος της εφαρµογής αυτής παρουσιάζεται στην Εικόνα 5 του ένθετου του βιβλίου. Παράδειγµα 18.6 // χρήση πανό και του διαχειριστή διάταξης BorderLayout import java.awt.*; import javax.swing.*; public class BorderCalculator extends JFrame { // ένας πίνακας κουµπιών private JButton buttons[] = new JButton [10]; // ένας πίνακας πανό private JPanel panels []= new JPanel [5]; public BorderCalculator () { super("υπολογιστής"); Container c = getcontentpane (); c.setlayout (new BorderLayout ()); // δηµιούργησε τα πανό for (int i = 0; i < 5; i++) panels[i] = new JPanel (); // δηµιούργησε τα κουµπιά for (int i = 0; i < 10; i++) buttons[i] = new JButton (""+i); // πρόσθεσε δύο κουµπιά σε κάθε πανό for (int i = 0; i < 5; i++) { panels[i].add (buttons[2*i]); panels[i].add (buttons[2*i+1]); } // τοποθέτησε τα πανό στα κατάλληλα σηµεία c.add (panels[0], BorderLayout.NORTH); c.add (panels[1], BorderLayout.WEST); c.add (panels[2], BorderLayout.CENTER); c.add (panels[3], BorderLayout.EAST); c.add (panels[4], BorderLayout.SOUTH);

25 Κεφάλαιο 18: Γραφικές ιεπαφές Χρήστη και Γραφικά 517 setsize (300, 170); setvisible (true); } // BorderCalculator public static void main (String args[]) { BorderCalculator calc = new BorderCalculator (); calc.setdefaultcloseoperation (EXIT_ON_CLOSE); } // main } // BorderCalculator Τα αποτελέσµατα της εκτέλεσης του προγράµµατος της εφαρµογής αυτής παρουσιάζονται στην Εικόνα 6 του ένθετου του βιβλίου Η τάξη Graphics Η τάξη Graphics µας επιτρέπει να σχεδιάζουµε σχήµατα κ.ά. σε διάφορες συσκευές εµφάνισης εικόνων. Για λόγους φορητότητας η τάξη αυτή είναι µια αφηρηµένη τάξη, διότι ο σχεδιασµός των σχηµάτων επιτυγχάνεται µε διαφορετικό τρόπο σε κάθε πλατφόρµα που υποστηρίζει τη Java. Έτσι, όταν η Java υλοποιείται σε κάποια πλατφόρµα, δηµιουργείται µια νέα τάξη που προέρχεται από την τάξη Graphics. Η νέα τάξη είναι αυτή που στην πραγµατικότητα παρέχει τις ικανότητες σχεδίασης. Η υλοποίηση αυτή δεν είναι φανερή στον προγραµµατιστή κι έτσι αυτός µπορεί να χρησιµοποιήσει τις µεθόδους της τάξης Graphics για να σχεδιάσει µε τρόπο που είναι ανεξάρτητος από την εκάστοτε πλατφόρµα υλισµικού και λογισµικού. Η µέθοδος paint της τάξης Component παίρνει ως παράµετρο ένα αντικεί- µενο τύπου Graphics που στην πραγµατικότητα είναι µια αναφορά ενός αντικει- µένου της τάξης που προέρχεται από την τάξη Graphics. Όταν οποιοδήποτε συστατικό µιας Γ Χ πρόκειται να εµφανιστεί στην οθόνη, τότε το σύστηµα καλεί αυτόµατα τη µέθοδο paint. Όπως ήδη αναφέραµε, ένας προγραµµατιστή πολύ σπάνια χρειάζεται να καλέσει άµεσα τη µέθοδο paint. Αντ αυτής καλεί συνήθως τη µέθοδο repaint(). Η τελευταία ζητά να κληθεί η µέθοδος update (Graphics g)της τάξης Component όσο γίνεται πιο γρήγορα. Η µέθοδος update καθορίζει το παρασκήνιο του συστατικού από οτιδήποτε περιέχει και καλεί η ίδια άµεσα τη µέθοδο paint. Η µέθοδος update, όπως και η µέθοδος paint, παίρνει και αυτή ως παρά- µετρο ένα αντικείµενο τύπου Graphics που στην πραγµατικότητα είναι µια α- ναφορά αντικειµένου της τάξης που προέρχεται από την τάξη Graphics. Το α- ντικείµενο αυτό παρέχεται αυτόµατα από το σύστηµα στη µέθοδο update.

26 518 Προγραµµατισµός µε Java Ένα αντικείµενο τύπου Graphics έχει διάφορες ιδιότητες που απαιτούνται για την εµφάνισή του. Μερικές από τις ιδιότητες αυτές είναι: το αντικείµενο-συστατικό πάνω στο οποίο θα σχεδιαστεί τις συντεταγµένες το τρέχον χρώµα του το τρέχον font του κ.ά. Μερικές από τις µεθόδους της τάξης Graphics δίνονται στα παρακάτω. Όπου δεν αναφέρεται ρητά οι µέθοδοι αυτές χρησιµοποιούν το τρέχον χρώµα των γραφικών συµφραζοµένων. Οι παράµετροι width (πλάτος) και height (ύψος) πρέπει να έχουν µη αρνητικές τιµές, ειδάλλως το εν λόγω σχήµα δε θα εµφανιστεί. Οι συντεταγµένες αυτές µετριούνται σε εικονοστοιχεία από το πάνω αριστερά σηµείο του παραθύρου του υποδοχέα. Οι συντεταγµένες (0, 0) αντιστοιχούν στην άνω αριστερά γωνία του παραθύρου του υποδοχέα: public abstract void drawstring (String συµβολοσειρά, int x, int y) σχεδιάζει τη συµβολοσειρά αρχίζοντας από τη θέση (x, y) public abstract void drawline (int x1, int y1, int x2, int y2) σχεδιάζει µια γραµµή µεταξύ των σηµείων (x1, y1) και (x2, y2) public void drawrect (int x, int y, int width, int height) σχεδιάζει ένα ορθογώνιο παραλληλόγραµµο που έχει πλάτος width και ύψος height. Η πάνω αριστερή γωνία του ορθογωνίου έχει συντεταγµένες (x, y) public abstract void fillrect (int x, int y, int width, int height) όπως η προηγούµενη µέθοδος, µόνο που το ορθογώνιο είναι γεµάτο µε το τρέχον χρώµα public abstract void clearrect (int x, int y, int width, int height) όπως η προηγούµενη µέθοδος, µόνο που το ορθογώνιο έχει το τρέχον παρασκηνιακό χρώµα της τρέχουσας επιφανείας σχεδίασης. public abstract void drawroundrect (int x, int y, int width, int height, int arcwidht, int archeight)

27 Κεφάλαιο 18: Γραφικές ιεπαφές Χρήστη και Γραφικά 519 σχεδιάζει ένα ορθογώνιο παραλληλόγραµµο που έχει πλάτος width και ύψος height και στρογγυλές γωνίες πλάτους arcwidht και ύψους archeight public abstract void fillroundrect (int x, int y, int width, int height, int arcwidht, int archeight) όπως η προηγούµενη µέθοδος µόνο που το ορθογώνιο µε τις στρογγυλές γωνίες είναι γεµάτο µε το τρέχον χρώµα public abstract void drawoval (int x, int y, int width, int height) σχεδιάζει µια έλλειψη που έχει πλάτος width και ύψος height. Η πάνω αριστερά γωνία του ορθογωνίου που περικλείει την έλλειψη αυτή έχει συντεταγµένες (x, y). Η έλλειψη αγγίζει και τις τέσσερις πλευρές του ορθογωνίου αυτού στο κέντρο τους public abstract void filloval (int x, int y, int width, int height) όπως η προηγούµενη µέθοδος µόνο που η έλλειψη είναι χρωµατισµένη µε το τρέχον χρώµα public abstract void drawarc (int x, int y, int width, int height, int αρχική_γωνία, int γωνία_τόξου) σχεδιάζει ένα τόξο που έχει γωνία_τόξου µοιρών, ξεκινώντας από την αρχική_ γωνία. Αρνητικές τιµές της παραµέτρου γωνία_τόξου σηµαίνουν σχεδίαση του τόξου µε φορά ίδια µε αυτή των δεικτών του ρολογιού, ενώ θετικές τιµές σηµαίνουν σχεδίαση µε φορά αντίθετη από αυτήν των δεικτών του ρολογιού. Η τιµή 0 της παραµέτρου αρχική_γωνία αντιστοιχεί στο δεξιότερο σηµείο της έλλειψης στην οποία ανήκει το τόξο. Τέλος, οι παράµετροι x και y προσδιορίζουν το πάνω αριστερό σηµείο του ορθογωνίου, στο οποίο είναι περικλείεται η έλλειψη, ενώ οι παράµετροι width και height το πλάτος και το ύψος του ορθογωνίου ατού, αντίστοιχα public abstract void fillarc (int x, int y, int width, int height, int αρχική_γωνία, int γωνία_τόξου) όπως και η προηγούµενη µέθοδος, µόνο που το τόξο είναι χρωµατισµένο µε το τρέχον χρώµα public abstract Color getcolor () επιστρέφει το τρέχον χρώµα των γραφικών συµφραζοµένων public abstract void setcolor (Color c) θέτει το τρέχον χρώµα αυτών των γραφικών συµφραζοµένων σε c public abstract Font getfont ()

28 520 Προγραµµατισµός µε Java επιστρέφει το τρέχον Font public abstract void setfont (Font font) θέτει το τρέχον font, στυλ και µέγεθος σ αυτά που προσδιορίζει η παράµετρος font public abstract void translate (int x, int y) µεταφράζει τις αρχικές συντεταγµένες των γραφικών συµφραζοµένων στο σηµείο (x, y) του τρέχοντος συστήµατος συντεταγµένων. Τροποποιεί τα γραφικά συµφραζόµενα έτσι ώστε η νέα τους αρχή να αντιστοιχεί στο σηµείο (x, y) στο αρχικό σύστηµα συντεταγµένων των γραφικών αυτών συµφραζοµένων. Όλες οι συντεταγµένες που χρησιµοποιούνται ακολούθως για τα συµφραζόµενα αυτά θα είναι σχετικές ως προς τη νέα αρχή. Παράδειγµα 18.7 import java.awt.*; import javax.swing.*; import java.io.*; public class ShapeDrawing extends JFrame // σχεδιάζει γραµµές, ορθογώνια ή ελλείψεις, ανάλογα µε // την επιλογή του χρήστη { static int choice; // η επιλογή του χρήστη public ShapeDrawing () { getcontentpane ().setbackground (new Color (209, 155, 73)); setsize (400, 400); setvisible (true); } // ShapeDrawing public void paint (Graphics g) { super.paint(g); // δεν είναι απαραίτητη 5 for ( int i = 0; i < 10; i++ ) { switch (choice) { case 1: // σχεδίαση γραµµών settitle ("Γραµµές"); g.drawline( 50, 50, 300, 50 + i*10 ); break; 5 Αλλά, αν την παραλείψουµε, µπορεί να προκύψουν περίπλοκα µικρά σφάλµατα σε εφαρµογές ή µικροεφαρµογές που συνδυάζουν εµφάνιση γραφικών µε γραφικές διεπαφές χρήστη.

29 Κεφάλαιο 18: Γραφικές ιεπαφές Χρήστη και Γραφικά 521 case 2: // σχεδίαση ορθογωνίων settitle ("Ορθογώνια"); g.drawrect( 50 + i*10, 50 + i*10, i*10, i*10 ); break; case 3: // σχεδίαση ελλείψεων settitle ("Ελλείψεις"); g.drawoval( 50 + i*10, 50 + i*10, i*10, i*10 ); break; default: // λανθασµένη επιλογή settitle ("Λανθασµένη Επιλογή"); g.drawstring ("Προσπαθήστε Ξανά", 50, 100); } } } // paint public static void main (String args[]) throws IOException { // ζητάει από το χρήστη να επιλέξει το προς // σχεδίασε σχήµατα System.out.println ("1. Σχεδίαση Γραµµών"); System.out.println ("2. Σχεδίαση Ορθογωνίων"); System.out.println ("3. Σχεδίαση Ελλείψεων"); System.out.print ("Εισάγετε την επιλογή σας: "); choice = my.readint (); ShapeDrawing efarmogh = new ShapeDrawing (); efarmogh.setdefaultcloseoperation(exit_on_close); } // main } // ShapeDrawing Τα αποτελέσµατα της εκτέλεσης του προγράµµατος της εφαρµογής αυτής (ανάλογα µε την επιλογή του χρήστη) παρουσιάζονται στην Εικόνα 7 του ένθετου του βιβλίου Η τάξη Color Η τάξη Color ορίζει σταθερές και µεθόδους για την επεξεργασία χρωµάτων σε προγράµµατα της Java. Οι δηµόσιες στατικές σταθερές τύπου Color που ορίζει η τάξη αυτή είναι:

30 522 Προγραµµατισµός µε Java Σταθερά Χρώµα Τιµή RGB black (BLACK) µαύρο 0, 0, 0 blue (BLUE) µπλε 0, 0, 255 cyan (CYAN) κυανό 0, 255, 255 darkgray (DARK_GRAY) σκούρο γκρίζο 64, 64, 64 gray (GRAY) γκρίζο 128, 128, 128 green (GREEN) πράσινο 0, 255, 0 lightgray (LIGHT_GRAY) ελαφρύ γκρίζο 192, 192, 192 magenta (MAGENTA) βαθύ κόκκινο 255, 0, 255 orange (ORANGE) πορτοκαλί 255, 200, 0 pink (PINK) ροζ 255, 175, 175 red (RED) κόκκινο 255, 0, 0 white (WHITE) λευκό 255, 255, 255 yellow (YELLOW) κίτρινο 255, 255, 0 Οποιοδήποτε χρώµα µπορεί να αναπαραχθεί από συνδυασµό των χρωµάτων κόκκινο (red), πράσινο (green) και µπλε (blue). Οι αναλογίες των χρωµάτων αυτών είναι γνωστές ως τιµές RGB και οι τιµές αυτές µπορεί να είναι ακέραιες στην περιοχή 0 ως 255 ή κινητής υποδιαστολής στην περιοχή 0.0F ως 1.0F. Η πρώτη τιµή προσδιορίζει το ποσοστό του κόκκινου, η δεύτερη το ποσοστό του πράσινου και η τρίτη το ποσοστό του µπλε. Η Java επιτρέπει στον προγραµµατιστή να επιλέξει µεταξύ 256x256x256 (περίπου 16.7 εκατοµµύρια διαφορετικά χρώµατα). Μερικοί από τους κατασκευαστές της τάξης Color είναι: public Color (int r, int g, int b, int a) δηµιουργεί ένα χρώµα που βασίζεται στις τιµές από 0 έως 255 των r (κόκκινο), g (πράσινο) και b (µπλε). Η παράµετρος a προσδιορίζει τη διαφάνεια του χρώµατος. Αν η τιµή του a είναι ίση µε 255 το χρώµα είναι τελείως αδιαφανές. Ενώ αν η τι- µή του a είναι ίση µε 0, τότε το χρώµα είναι τελείως διαφανές public Color (int r, int g, int b) όπως και η παραπάνω µέθοδος, δηµιουργεί ένα χρώµα που βασίζεται στις τιµές από 0 έως 255 των r (κόκκινο), g (πράσινο) και b (µπλε). Ισοδυναµεί µε την Color(r, g, b, 255) public Color (float r, float g, float b, float a) δηµιουργεί ένα χρώµα που βασίζεται στις τιµές από 0.0f έως 1.0f των r (κόκκινο), g (πράσινο) και b (µπλε) [οι παράµετροι εδώ είναι τύπου float]. Η παράµετρος a προσδιορίζει, όπως και παραπάνω, τη διαφάνεια του χρώµατος (αν

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Graphical User Interfaces (GUI) SWING ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING Swing Τα GUIs (Graphical User Interfaces) είναι τα συνηθισμένα interfaces που χρησιμοποιούν παράθυρα, κουμπιά, menus,

Διαβάστε περισσότερα

Week 10: Graphical User Interfaces

Week 10: Graphical User Interfaces Week 10: Graphical User Interfaces Έννοιες του προγραµµατισµού ΓΠΕ [GUI] Εβδοµάδα 10: Εισαγωγή στα Γραφικά Περιβάλλοντα Επικοινωνίας [Graphical User Interfaces] Συστατικά [components] ιάταξη [layout] [event-driven

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Graphical User Interfaces (GUI) SWING ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING Swing Τα GUIs (Graphical User Interfaces) είναι τα συνηθισμένα interfaces που χρησιμοποιούν παράθυρα, κουμπιά, menus,

Διαβάστε περισσότερα

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

ημιουργία Γραφικού Περιβάλλοντος Γραφικό Περιβάλλον Χρήστη. Πλαίσια και παράθυρα. Κουμπιά. Ετικέτες και πεδία κειμένου. Πλαίσια ελέγχου. Σύνθετα πλαίσια. Περιοχές κειμένου. Πάνελς. Διαχειριστές Διάταξης. Απόκριση σε δεδομένα που εισάγει

Διαβάστε περισσότερα

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

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #17 Week 10: Graphical User Interfaces Έννοιες του προγραμματισμού ΓΠΕ [GUI] Διάλεξη #17: Εισαγωγή στα Γραφικά Περιβάλλοντα Επικοινωνίας [Graphical User Interfaces] Συστατικά [components] Διάταξη [layout]

Διαβάστε περισσότερα

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

Εργαστήριο 1-1 η Άσκηση - Ανάλυση Εργαστήριο 1-1 η Άσκηση - Ανάλυση Εκφώνηση: Δημιουργείστε εφαρμογή σε Java Swing με χρήση του IDE NetBeans όπου θα παρουσιάζεται ποιο κουμπί πατήθηκε. Η εφαρμογή θα μοιάζει ως εξής: Πρώτο Βήμα: Αρχική

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 12 : ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ GUI AWT ΚΑΙ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 12 : ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ GUI AWT ΚΑΙ SWING Βασικά στοιχεία ενός GUI Ένα Graphical User Interface-GUI (στα ελληνικά Γραφική Διεπαφή με το Χρήστη) είναι το μέρος του

Διαβάστε περισσότερα

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

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 8: Java Swing Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Week 12: GUIs with Swing

Week 12: GUIs with Swing Week 12: GUIs with Swing Προγραµµατισµός ΓΠΕ: ανασκόπηση Εισαγόµενα πακέτα Java Εβδοµάδα 12: Γραφικά Περιβάλλοντα Επικοινωνίας Java µε Swing «Στήσιµο»του αυτόνοµου παράθυρου [frame] Συστατικά [components]

Διαβάστε περισσότερα

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

Εργαστήριο 2 - Άσκηση - Ανάλυση Εργαστήριο 2 - Άσκηση - Ανάλυση Εκφώνηση: Δημιουργείστε την εφαρμογή Αριθμήτηριο σε Java Swing με χρήση NetBeans ακολουθώντας τις παρακάτω οδηγίες. 1. Η εφαρμογή θα σχεδιασθεί σε ένα εξωτερικό υποδοχέα

Διαβάστε περισσότερα

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

9.1 JFC Swing. 9.1 JFC Swing Java (GUI) Java. Java Foundation Classes (JFC) Swing GUI. JFC Card Pile GameFrame GUI 9 2013 6 11 9.1 JFC Swing.................................... 9 1 9.2 (Graphics )................. 9 2 9.3.................................. 9 4 9.4 (Color ).............................. 9 6 9.5.......................................

Διαβάστε περισσότερα

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

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #18 Week 12: GUIs with Swing Προγραμματισμός ΓΠΕ: ανασκόπηση Εισαγόμενα πακέτα Java Διαλεξη #18: Γραφικά Περιβάλλοντα Επικοινωνίας Java με Swing «Στήσιμο»του αυτόνομου παράθυρου [frame] Συστατικά [components]

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

java.awt Font Γραµµατοσειρές Color Χρώµατα

java.awt Font Γραµµατοσειρές Color Χρώµατα Οι κλάσεις Font και Color Η κλάση Font Η κλάση Color Χρήση Γραφικών Σχεδίαση Γραµµών Σχεδίαση Ορθογωνίων Σχεδίαση Ελλείψεων και Κύκλων Σχεδίαση Τόξων Σχεδίαση Πολυγώνων Σχεδίαση Γραµµών µε ιαφορετικά Πλάτη

Διαβάστε περισσότερα

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

VK -14/10/2016 Σελίς 1 Ο Source Kώδικας της JFrame Φόρµας µε όνοµα Αsk1 Με δεξί κλικ στο Source Packages του project Ergastirio1 µε New -> JFrame Form επιλέξαµε να δηµιουργηθεί η JFrame φόρµα (πλαίσιο) µε όνοµα κλάσης Class

Διαβάστε περισσότερα

6.1 Εισαγωγή. 6.2 Ασφάλεια

6.1 Εισαγωγή. 6.2 Ασφάλεια 6.1 Εισαγωγή Ενώ οι εφαρµογές στην Java εκτελούνται από έναν διερµηνευτή, οι µικροεφαρµογές (applets) εκτελούνται από έναν φυλλοµετρητή (browser εξεταστή) του διαδικτύου όπως τον Netscape Navigator και

Διαβάστε περισσότερα

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

Εισαγωγή. Κεφάλαιο 2: Βασικές έννοιες Java Κεφάλαιο 3: Χρήση της Java στις σελίδες σας Κεφάλαιο 4: Οι πρώτες σας μικροεφαρμογές... ΠΕΡΙΕΧΟΜΕΝΑ Εισαγωγή... ix Κεφάλαιο 1: Τι είναι η Java;... 1 Ένα σύντομο μάθημα Ιστορίας...2 Γιατί να μάθει κανείς Java;...4 Διαδεδομένοι μύθοι για την Java...5 Τι θα χρειαστείτε...8 Οι διαφορετικές εκδόσεις

Διαβάστε περισσότερα

8.1 Top-Level Swing Containers και Swing Components

8.1 Top-Level Swing Containers και Swing Components Εισαγωγή στη γλώσσα προγραμματισμού Java 59 8. Γραφικές διεπαφές τύπου Swing (Swing GUIs) Τα πακέτα που αρχίζουν με το πρόθεμα javax.swing παρέχουν ευέλικτα και ισχυρά εργαλεία ανάπτυξης GUI. Ιδιαίτερα

Διαβάστε περισσότερα

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

7. Ανάπτυξη GUI σε Java 7. Ανάπτυξη GUI σε Java Όταν ολοκληρώσετε αυτό το κεφάλαιο, θα μπορείτε: Να περιγράφετε το πακέτο AWT και τις συνιστώσες του. Να εξηγείτε τους containers (περιέκτες), components (συνιστώσες) και layout

Διαβάστε περισσότερα

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

VK -14/10/2016 Σελίς 1 ΑΛΛΗΛΕΠΙ ΡΑΣΗ ΑΝΘΡΩΠΟΥ ΜΗΧΑΝΗΣ ΕΙΣΑΓΩΓΗ Προγραµµατισµός µε Γραφικά (Εισαγωγή στη JavaSwing και γνωριµία µε το εργαλείο NetBeans) Εξαιρετικό παράδειγµα που συνδυάζει όλες τις έννοιες του αντικειµενοστρεφή

Διαβάστε περισσότερα

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

Αντικειµενοστρεφής Προγραµµατισµός 16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη

Διαβάστε περισσότερα

Κλάσεις και Αντικείµενα

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

Διαβάστε περισσότερα

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

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)

Διαβάστε περισσότερα

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

ηµιουργία ιαλογικών Προγραµµάτων για το Web ηµιουργία ιαλογικών Προγραµµάτων για το Web Βοηθητικές Εφαρµογές (). Οι βασικές µέθοδοι των Βοηθητικών Εφαρµογών. Η µέθοδος init(). Οι µέθοδοι start() και stop(). Η µέθοδος paint(). Η µέθοδος destroy().

Διαβάστε περισσότερα

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

Περιεχόµενα. Πρόλογος...15 Περιεχόµενα Πρόλογος...15 Κεφάλαιο 1: Εισαγωγή...17 Τι είναι η Java... 17 Η ιστορία της Java... 21 Εκδόσεις της Java... 23 Ξεκίνηµα µε την Java... 24 Το περιβάλλον της γλώσσας... 28 ηµιουργία µιας εφαρµογής

Διαβάστε περισσότερα

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

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)

Διαβάστε περισσότερα

3D FLASH ANIMATOR (3DFA)

3D FLASH ANIMATOR (3DFA) 3D FLASH ANIMATOR (3DFA) Εισαγωγή Τα βασικά στοιχεία του προγράµµατος 3DFA είναι οι ταινίες (movies), τα στοιχεία (elements), τα keyframes, τα γεγονότα (events) και οι ενέργειες (actions). Ταινίες (movies)

Διαβάστε περισσότερα

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

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ Στην Java εκτός από τις κλασικές εφαρμογές μπορούμε να δημιουργήσουμε και άλλους δύο τύπους εφαρμογών: τα Applets, τα οποία τρέχουν μέσα από κάποιο φυλλομετρητή (browser) και τρέχουν

Διαβάστε περισσότερα

Λίγα λόγια από το συγγραφέα Microsoft Word Δημιουργία νέου εγγράφου Το σύστημα Βοήθειας του Word...

Λίγα λόγια από το συγγραφέα Microsoft Word Δημιουργία νέου εγγράφου Το σύστημα Βοήθειας του Word... ΕΝΟΤΗΤΑ 3 Περιεχόμενα Λίγα λόγια από το συγγραφέα... 7 91 Microsoft Word 2007... 9 92 Δημιουργία νέου εγγράφου... 20 93 Το σύστημα Βοήθειας του Word... 38 94 Μετακίνηση σε έγγραφο και προβολές εγγράφου...

Διαβάστε περισσότερα

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

ΑΛΛΗΛΕΠΙ ΡΑΣΗ ΑΝΘΡΩΠΟΥ ΜΗΧΑΝΗΣ 2 o ΕΡΓΑΣΤΗΡΙO ΑΛΛΗΛΕΠΙ ΡΑΣΗ ΑΝΘΡΩΠΟΥ ΜΗΧΑΝΗΣ 2 o ΕΡΓΑΣΤΗΡΙO O δικός μας Calculator jtextbox1 με δεξί κλικ αλλαγή ονόματος σε calcbox Το πρώτο πρώτο, που θα κάνετε στην φόρμα σας είναι να αλλάξετε LAYOUT Μετά φτιάξτε

Διαβάστε περισσότερα

Εργαστήριο #12. Βήμα 1 ο. Βήμα 2 ο. Βήμα 3 ο. Βήμα 4 ο.

Εργαστήριο #12. Βήμα 1 ο. Βήμα 2 ο. Βήμα 3 ο. Βήμα 4 ο. Εργαστήριο #12 Από τα προηγούμενα εργαστήρια: Το εργαστήριο αυτό είναι ανεξάρτητο από τα προηγούμενα επειδή όμως ασχολείται με τη γλώσσα JavaScript, βεβαιωθείτε ότι έχετε διαβάσει το εισαγωγικό Παράρτημα

Διαβάστε περισσότερα

ΚΕΝΤΡΟ ΠΛΗ.ΝΕ.Τ. Ν. ΦΛΩΡΙΝΑΣ. Η Γλώσσα Προγραµµατισµού Java

ΚΕΝΤΡΟ ΠΛΗ.ΝΕ.Τ. Ν. ΦΛΩΡΙΝΑΣ. Η Γλώσσα Προγραµµατισµού Java ΚΕΝΤΡΟ ΠΛΗ.ΝΕ.Τ. Ν. ΦΛΩΡΙΝΑΣ Η Γλώσσα Προγραµµατισµού Java Εισαγωγή στη Java Η γλώσσα προγραµµατισµού Java είναι από τις δηµοφιλέστερες στο είδος της και µπορεί να χρησιµοποιηθεί τόσο για αυτόνοµες εφαρµογές

Διαβάστε περισσότερα

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο) TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Επιστημονικός συνεργάτης Εργαστηρίου: Στέλλα Λάμπουρα Εαρινό εξάμηνο Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί

Διαβάστε περισσότερα

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

Μέρος ΙΙ Εφαρμογές γραφικών με το πακέτο swing - 5. Περιεχόμενα Μέρος ΙΙ Εφαρμογές γραφικών με το πακέτο swing - 5 Περιεχόμενα 1 Βασικές Έννοιες σε Εφαρμογές με Γραφικά... 12 1.1 Οι συνιστώσες τηs Java... 12 1.2 Tα πακέτα για συνιστώσες.... 12 1.3 Η κλάσεις στο πακέτο

Διαβάστε περισσότερα

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

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 7: Abstract Window Toolkit (AWT) Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

Διαβάστε περισσότερα

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό 5 ο Εργαστήριο Λογικοί Τελεστές, Δομές Ελέγχου Λογικοί Τελεστές > μεγαλύτερο = μεγαλύτερο ή ίσο!= διαφορετικό Οι λογικοί τελεστές χρησιμοποιούνται για να ελέγξουμε

Διαβάστε περισσότερα

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5)

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5) ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ Τοποθετώ μια δισκέτα στον οδηγό τη δισκέτας του υπολογιστή. Τοποθετώ τη δισκέτα που έχει το αρχείο μου στον οδηγό τη δισκέτας του υπολογιστή.

Διαβάστε περισσότερα

4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος

4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος 4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος Μεταβλητές Συστήματος Η Processing χρησιμοποιεί κάποιες μεταβλητές συστήματος, όπως τις ονομάζουμε, για να μπορούμε να παίρνουμε πληροφορίες από το

Διαβάστε περισσότερα

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

ΓΡΑΦΙΚΕΣ ΔΙΕΠΑΦΕΣ ΧΡΗΣΤΗ- SWING (1) ΓΡΑΦΙΚΕΣ ΔΙΕΠΑΦΕΣ ΧΡΗΣΤΗ- SWING (1) Πλεονεκτήματα έναντι του awt Περισσότερα συστατικά Επεκτεταμένα χαρακτηριστικά συστατικών Καλύτερη εμφάνιση και αίσθηση Καλύτερος χειρισμός συμβάντων Πιο συμβατά προγράμματα

Διαβάστε περισσότερα

ζωγραφίζοντας µε τον υπολογιστή

ζωγραφίζοντας µε τον υπολογιστή ζωγραφίζοντας µε τον υπολογιστή Μια από τις εργασίες που µπορούµε να κάνουµε µε τον υπολογιστή είναι και η ζωγραφική. Για να γίνει όµως αυτό πρέπει ο υπολογιστής να είναι εφοδιασµένος µε το κατάλληλο πρόγραµµα.

Διαβάστε περισσότερα

ιαµόρφωση σελίδας Προεπισκόπηση Εκτύπωση

ιαµόρφωση σελίδας Προεπισκόπηση Εκτύπωση ιαµόρφωση σελίδας Προεπισκόπηση Εκτύπωση Η µορφοποίηση των σελίδων ενός εγγράφου Πριν ξεκινήσετε να δηµιουργείτε ένα έγγραφο, είναι χρήσιµο να έχετε σχεδιάσει ή να έχετε κατά νου πώς περίπου θέλετε να

Διαβάστε περισσότερα

Λεπτομέριες τοιχοποιίας Σχεδίαση κάτοψης

Λεπτομέριες τοιχοποιίας Σχεδίαση κάτοψης 1 Λεπτομέριες τοιχοποιϊας Σχεδίαση κάτοψης Λεπτομέριες τοιχοποιίας Σχεδίαση κάτοψης Ξεκινώντας το πρόγραμμα εμφανίζονται οι επιλογές σχετικά με το τι θέλετε να κάνετε. Δημιουργώντας Νέο Δωμάτιο Όταν ο

Διαβάστε περισσότερα

0 SOLID_LINE 1 DOTTED_LINE 2 CENTER_LINE 3 DASHED_LINE 4 USERBIT_LINE

0 SOLID_LINE 1 DOTTED_LINE 2 CENTER_LINE 3 DASHED_LINE 4 USERBIT_LINE 1. Η κωδικοποίηση των χρωµάτων για σύστηµα γραφικών µε 16 χρώµατα Κωδικός Χρώµα Χρώµατος 0 BLACK 1 BLUE 2 GREEN 3 CYAN 4 RED 5 MAGENTA 6 BROWN 7 LIGHTGRAY 8 DARKGRAY 9 LIGHTBLUE 10 LIGHTGREEN 11 LIGHTCYAN

Διαβάστε περισσότερα

Πρακτικές οδηγίες για την Επεξεργασία Κειμένου

Πρακτικές οδηγίες για την Επεξεργασία Κειμένου 11 Εργαλεία έκφρασης και δημιουργίας Επεξεργασία Κειμένου Α Γυμνασίου Πρακτικές οδηγίες για την Επεξεργασία Κειμένου Ένα πρόγραμμα επεξεργασίας κειμένου μας προσφέρει τη δυνατότητα να: προσθέτουμε, να

Διαβάστε περισσότερα

Microsoft Excel Κεφάλαιο 1. Εισαγωγή. Βιβλίο εργασίας

Microsoft Excel Κεφάλαιο 1. Εισαγωγή. Βιβλίο εργασίας Περιεχόμενα Κεφάλαιο 1 Microsoft Excel 2010... 7 Κεφάλαιο 2 Η δομή ενός φύλλου εργασίας... 19 Κεφάλαιο 3 ημιουργία νέου βιβλίου εργασίας και καταχώριση δεδομένων... 24 Κεφάλαιο 4 Συμβουλές για την καταχώριση

Διαβάστε περισσότερα

Πίνακες, περιγράµµατα και σκίαση

Πίνακες, περιγράµµατα και σκίαση Πίνακες, περιγράµµατα και σκίαση Οι πίνακες Οι πίνακες είναι ορθογώνια πλαίσια που χωρίζονται σε γραµµές και στήλες. Η τοµή µιας γραµµής µε µια στήλη προσδιορίζει ένα κελί. Τα στοιχεία, που παρουσιάζουµε,

Διαβάστε περισσότερα

A3.3 Γραφικά Περιβάλλοντα Επικοινωνίας και Διαχείριση Παραθύρων

A3.3 Γραφικά Περιβάλλοντα Επικοινωνίας και Διαχείριση Παραθύρων A3.3 Γραφικά Περιβάλλοντα Επικοινωνίας και Διαχείριση Παραθύρων Τι θα μάθουμε σήμερα: Να αναφέρουμε τα κύρια χαρακτηριστικά ενός Γραφικού Περιβάλλοντος Επικοινωνίας Να εξηγούμε τη χρήση των κουμπιών του

Διαβάστε περισσότερα

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

2.1 Αντικειµενοστρεφής προγραµµατισµός 2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί

Διαβάστε περισσότερα

Νήµαταστην Java. Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων. Κατανεµηµένα Συστήµατα 11-1

Νήµαταστην Java. Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων. Κατανεµηµένα Συστήµατα 11-1 Νήµαταστην Java Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων Κατανεµηµένα Συστήµατα 11-1 Νήµαταστην Java γεννηθείσα notify notifyall έτοιµη start εκπνοή

Διαβάστε περισσότερα

3 ο Εργαστήριο Μεταβλητές, Τελεστές

3 ο Εργαστήριο Μεταβλητές, Τελεστές 3 ο Εργαστήριο Μεταβλητές, Τελεστές Μια μεταβλητή έχει ένα όνομα και ουσιαστικά είναι ένας δείκτης σε μια συγκεκριμένη θέση στη μνήμη του υπολογιστή. Στη θέση μνήμης στην οποία δείχνει μια μεταβλητή αποθηκεύονται

Διαβάστε περισσότερα

5.1.1 Περιγραφή των συστατικών τμημάτων ενός γραφήματος

5.1.1 Περιγραφή των συστατικών τμημάτων ενός γραφήματος 5. Γραφήματα 5.1 Εισαγωγή 5.1.1 Περιγραφή των συστατικών τμημάτων ενός γραφήματος Το Discoverer παρέχει μεγάλες δυνατότητες στη δημιουργία γραφημάτων, καθιστώντας δυνατή τη διαμόρφωση κάθε συστατικού μέρους

Διαβάστε περισσότερα

MICROSOFT OFFICE 2003

MICROSOFT OFFICE 2003 MICROSOFT OFFICE 2003 MICROSOFT EXCEL 2003 Γραφήµατα Πληροφορίες για τα γραφήµατα T α γραφήµατα προσελκύουν την προσοχή και διευκολύνουν την προβολή συγκρίσεων, τάσεων σε δεδοµένα. Για παράδειγµα, αντί

Διαβάστε περισσότερα

Πρακτικές συμβουλές κατά την πληκτρολόγηση ., ; :! ( ) " " Άνοιγμα και αποθήκευση εγγράφου Αρχείο, Άνοιγμα. Αρχείο / Αποθήκευση

Πρακτικές συμβουλές κατά την πληκτρολόγηση ., ; :! ( )   Άνοιγμα και αποθήκευση εγγράφου Αρχείο, Άνοιγμα. Αρχείο / Αποθήκευση Επεξεργαστής κειμένου Word 2003 Πρακτικές συμβουλές κατά την πληκτρολόγηση Για να αλλάξουμε παράγραφο πατάμε Enter. Για να αφήσουμε μία κενή γραμμή, πατάμε μία φορά το Enter. Για να γράψουμε την επόμενη

Διαβάστε περισσότερα

Εισαγωγή στο Libre Office. Bάιος Κολοφωτιάς Επιστημονικός Συνεργάτης Sweng Lab A.Π.Θ

Εισαγωγή στο Libre Office. Bάιος Κολοφωτιάς Επιστημονικός Συνεργάτης Sweng Lab A.Π.Θ Εισαγωγή στο Libre Office Bάιος Κολοφωτιάς Επιστημονικός Συνεργάτης Sweng Lab A.Π.Θ Εισαγωγή στο Libre Ofiice To LibreOffice είναι η ελεύθερη, πολυδύναμη (power-packed), σουΐτα προσωπικής παραγωγικότητας

Διαβάστε περισσότερα

Γενικό Λύκειο Κρουσώνα - Σχολικό έτος 2013-2014 Εκπαιδευτικός: Παπαδάκης Σταµάτης

Γενικό Λύκειο Κρουσώνα - Σχολικό έτος 2013-2014 Εκπαιδευτικός: Παπαδάκης Σταµάτης Οδηγάµε το Γενικό Λύκειο Κρουσώνα - Σχολικό έτος 2013-2014 Φύλλο Εργασίας Προγραµµατισµός Εφαρµογής στο AppInventor http://ai2.appinventor.mit.edu Ακολουθώντας τα βήµατα αυτού του φύλλου εργασίας, θα αναπτύξουµε

Διαβάστε περισσότερα

1 ο Εργαστήριο Συντεταγμένες, Χρώματα, Σχήματα

1 ο Εργαστήριο Συντεταγμένες, Χρώματα, Σχήματα 1 ο Εργαστήριο Συντεταγμένες, Χρώματα, Σχήματα 1. Σύστημα Συντεταγμένων Το σύστημα συντεταγμένων που έχουμε συνηθίσει από το σχολείο τοποθετούσε το σημείο (0,0) στο σημείο τομής των δυο αξόνων Χ και Υ.

Διαβάστε περισσότερα

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

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13 Περιεχόμενα Πρόλογος... 13 ΜΕΡΟΣ ΠΡΩΤΟ Κεφ. 1 Περί προγραμματισμού και γλωσσών προγραμματισμού Προγράμματα και Λειτουργικά Συστήματα... 17 Γλώσσες προγραμματισμού και εργαλεία ανάπτυξης προγραμμάτων...

Διαβάστε περισσότερα

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να καταλάβουν την διαφορά ανάμεσα σε τοπικές και καθολικές μεταβλητές. Nα κάνουν αποσφαλμάτωση

Διαβάστε περισσότερα

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

Προγραμματισμός Διαδικτύου 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Προγραμματισμός Διαδικτύου Ενότητα 5 : Γραφικά με την χρήση του πακέτου AWT Ιωάννης Τσούλος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα Τμήμα Μηχανικών Πληροφορικής

Διαβάστε περισσότερα

Δημιουργώντας μια εφαρμογή ζωγραφικής. 2 η Εργασία

Δημιουργώντας μια εφαρμογή ζωγραφικής. 2 η Εργασία Δημιουργώντας μια εφαρμογή ζωγραφικής 2 η Εργασία Απαιτήσεις 1. Σύνδεση στο Διαδίκτυο (διότι οι εφαρμογές δημιουργούνται online) 2. Εγκατεστημένος ο Browser Google Chrome 3. Υπαρκτός λογαριασμός Gmail

Διαβάστε περισσότερα

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

10.1 Γενικά για τα streams 10.1 Γενικά για τα streams Για την αλληλεπίδραση ενός προγράµµατος µε ένα αρχείο, δηλαδή για την αποθήκευση ή την ανάγνωση δεδοµένων από αυτό χρησιµοποιείται ένα σύστηµα επικοινωνίας που καλείται streams.

Διαβάστε περισσότερα

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Εντολές ελέγχου συγκρίσεων επιλογής ή διακλαδώσεων ( if switch) Μία από τις σημαντικότερες

Διαβάστε περισσότερα

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

Βιοϊατρική τεχνολογία Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Βιοϊατρική τεχνολογία Ενότητα 5: Οξύμετρο (OxyPro Project) Αν. καθηγητής Αγγελίδης Παντελής e-mail: paggelidis@uowm.gr ΕΕΔΙΠ Μπέλλου Σοφία e-mail: sbellou@uowm.gr

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 5: Applets και Γραφικά Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το

Διαβάστε περισσότερα

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι 1 ΕΙΣΑΓΩΓΗ Η γλώσσα προγραµµατισµού Java είναι ισχυρά τυποποιηµένη (strongly typed), που σηµαίνει ότι κάθε µεταβλητή και κάθε έκφραση έχει κάποιο τύπο, ο οποίος πρέπει να είναι γνωστός κατά το χρόνο της

Διαβάστε περισσότερα

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

Περιεχόμενα. Πρόλογος 15 Περιεχόμενα Πρόλογος 15 1 Δημιουργία προγραμμάτων Java 25 Ορισμός βασικής ορολογίας προγραμματισμού 26 Σύγκριση διαδικαστικού και αντικειμενοστρεφούς προγραμματισμού 29 Διαδικαστικός προγραμματισμός 29

Διαβάστε περισσότερα

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

Διαβάστε περισσότερα

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

Οπτικός Προγραμματισμός σε NetBeans με Java Swing Οπτικός Προγραμματισμός σε NetBeans με Java Swing 1 NetBeans Το NetBeans είναι το επίσημο ολοκληρωμένο περιβάλλον ανάπτυξης (IDE - Integrated Development Environment) για υλοποίηση εφαρμογών σε Java 8.

Διαβάστε περισσότερα

Δημιουργία ενός κενού πίνακα

Δημιουργία ενός κενού πίνακα 3.4.1.1 Δημιουργία ενός κενού πίνακα Ένας πίνακας αποτελείται από έναν αριθμό γραμμών και στηλών που δημιουργούν ένα πλέγμα. Σε αυτό το πλέγμα είναι πιθανή η ύπαρξη ή μη περιθωρίων. Κάθε κελί του πίνακα

Διαβάστε περισσότερα

Φύλλο Εργασίας Τίτλος: Εισαγωγική Εφαρμογή

Φύλλο Εργασίας Τίτλος: Εισαγωγική Εφαρμογή Διάρκεια: 1 ώρα Τμήμα: Ονοματεπώνυμα ομάδας: Φύλλο Εργασίας Τίτλος: Εισαγωγική Εφαρμογή 1) 2) 3) Σκοπός της εργασίας αυτής είναι να εξοικειωθείτε με το περιβάλλον δημιουργίας εφαρμογών κινητής τηλεφωνίας

Διαβάστε περισσότερα

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

Εργαστήριο Java. Αντικείµενο: Δίκτυα. Χειρισµός URLs. Άσκηση 1. Lab11. Πακέτο java.net Εργαστήριο Java Lab11 Αντικείµενο: Δίκτυα Πακέτο java.net H Java παρέχει ένα σύνολο από ενσωµατωµένες δυνατότητες για δηµιουργία εφαρµογών στο Internet ή σε τοπικά δίκτυα. H Java παρέχει τα stream sockets

Διαβάστε περισσότερα

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

Προγραμματισμός Διαδικτύου 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Προγραμματισμός Διαδικτύου Ενότητα 11 : Το πακέτο SWING Ιωάννης Τσούλος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών Πληροφορικής

Διαβάστε περισσότερα

MEDIWARE L.I.S ΟΔΗΓΙΕΣ ΥΠΟΠΡΟΓΡΑΜΜΑΤΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΠΙΣΚΕΨΕΩΝ

MEDIWARE L.I.S ΟΔΗΓΙΕΣ ΥΠΟΠΡΟΓΡΑΜΜΑΤΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΠΙΣΚΕΨΕΩΝ MEDIWARE L.I.S. 2006 ΟΔΗΓΙΕΣ ΥΠΟΠΡΟΓΡΑΜΜΑΤΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΠΙΣΚΕΨΕΩΝ -1 -2 Προγραμματισμός Επισκέψεων. Με την επιλογή Προγραμματισμός Επισκέψεων ο χειριστής έχει τη δυνατότητα να καταχωρίσει τις μελλοντικές

Διαβάστε περισσότερα

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

Κλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα Αντικειµενοστραφής Προγραµµατισµός Αντικείµενα Ιεραρχία κλάσεων. Ιδιότητες Συµπεριφορά Ιδιότητες (Μεταβλητές) Συµπεριφορά (Μέθοδοι) Κληρονοµικότητα Μέθοδοι επικάλυψης Η χρήση του this και του super Αντικειµενοστραφής

Διαβάστε περισσότερα

Εισαγωγή στο πρόγραμμα Microsoft word 2003

Εισαγωγή στο πρόγραμμα Microsoft word 2003 Εισαγωγή στο πρόγραμμα Microsoft word 2003 Έναρξη 1. Εκκίνηση του προγράμματος Για να ξεκινήσουμε το Word, πατάμε στο κουμπί Εναρξη και από το μενού που εμφανίζεται επιλέγουμε Προγράμματα και Microsoft

Διαβάστε περισσότερα

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

Εργαστήριο 3 - Άσκηση - Ανάλυση Εργαστήριο 3 - Άσκηση - Ανάλυση Εκφώνηση: Δημιουργείστε την εφαρμογή «Αγορά Σπιτιού» σε Java Swing με χρήση NetBeans ακολουθώντας τις παρακάτω οδηγίες. 1. Η εφαρμογή θα σχεδιασθεί σε ένα εξωτερικό υποδοχέα

Διαβάστε περισσότερα

Γνωριµία µε τη Microsoft Access

Γνωριµία µε τη Microsoft Access Γνωριµία µε τη Microsoft Access ηµιουργία νέας βάσης δεδοµένων Έναρξη - Προγράµµατα - Microsoft Access - ηµιουργία νέας βάσης δεδοµένων µε χρήση Κενής βάσης δεδοµένων - ΟΚ Επιλέγουµε Φάκελο και στο Όνοµα

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο input

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Graphical User Interfaces (GUI) SWING ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING Swing H Swing είναι η βιβλιοθήκη της Java για τον προγραμματισμό GUIs (Graphical User Interfaces) [και πιο γενικά για

Διαβάστε περισσότερα

Σχήµα 2.1: Εισαγωγή array στο Front Panel.

Σχήµα 2.1: Εισαγωγή array στο Front Panel. Arrays (Πίνακες) 1. Στο LAbVIEW η εισαγωγή πινάκων γίνεται µε τα arrays. Για να εισάγουµε ένα array στο Front Panel κάνουµε δεξί κλικ σε αυτό και επιλέγουµε την εντολή «Array» από το µενού «Array, Matrix

Διαβάστε περισσότερα

Τα Windows Πολύ Απλά και Πολύ Σύντομα

Τα Windows Πολύ Απλά και Πολύ Σύντομα Σαχπατζίδης Αβραάμ Καθηγητής Πληροφορικής Π.Ε 20 Master of Arts (M.A) in "Gender, New Forms of Education, New Forms of Employment and New Technologies in the Information Age". Τα Windows Πολύ Απλά και

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07 Πρώτοι αριθμοί ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07 Ένας ακέραιος μεγαλύτερος του 1 είναι πρώτος αν έχει ακριβώς δύο διαιρέτες (τη μονάδα και τον εαυτό του). Πρόβλημα: έλεγχος

Διαβάστε περισσότερα

Word 3: Δημιουργία πίνακα

Word 3: Δημιουργία πίνακα Word 3: Δημιουργία πίνακα Θα ολοκληρώσουμε την πρακτική μας άσκηση πάνω στο περιβάλλον του Microsoft Word 2013 πειραματιζόμενοι με την καταχώρηση ενός πίνακα στο εσωτερικό ενός εγγράφου. Πολλές φορές απαιτείται

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING Επισκόπηση Swing H Swing είναι η βιβλιοθήκη της Java για τον προγραμματισμό GUIs (Graphical User Interfaces) [και πιο

Διαβάστε περισσότερα

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

HelloApplet. Παύλος Εφραιμίδης Java Applets 1 HelloApplet Παύλος Εφραιμίδης pefraimi@ee.duth.gr Java Applets 1 Applets Τα Applets είναι προγράμματα Java που μπορούν να εκτελεστούν μέσα στο περιβάλλον ενός Browser (Firefox, Internet Explorer, Netscape,

Διαβάστε περισσότερα

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιασύνδεση µε χρήστη: Swing ΙΙ. Window Listeners

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιασύνδεση µε χρήστη: Swing ΙΙ. Window Listeners Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 11η: 28/08/2006 1 ιασύνδεση

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES Κων. Κόκκινος Αντικειμενοστραφής Προγραμματισμός Η ιδέα του αντικειμενοστραφούς προγραμματισμού Αυτόνομες οντότητες Στιγμιότυπα οντοτήτων Παράδειγμα

Διαβάστε περισσότερα

Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites

Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites Σκοπός της 10ης άσκησης είναι να μάθουμε να χρησιμοποιούμε sprites και να φτιάξουμε ένα παιχνίδι που χρησιμοποιεί συγκρούσεις. Θα δούμε επίσης μερικά

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ακαδημαϊκό έτος 2010/2011 Επιμέλεια Ξενοφών Βασιλάκος Περιεχόμενα Φροντιστηρίου A. Πρωταρχικοί τύποι B. Είσοδος/ Έξοδος C. Πράξεις 2 Δήλωση / Αρχικοποίηση / Εκχώρηση A. Πρωταρχικοί

Διαβάστε περισσότερα

ΕΡΩΤΗΣΕΙΣ στην επεξεργασία κειμένου (Word)

ΕΡΩΤΗΣΕΙΣ στην επεξεργασία κειμένου (Word) 1. Πώς δημιουργούμε ένα νέο έγγραφο; 2. Πώς αποθηκεύουμε ένα έγγραφο στη δισκέτα μας; 3. Μπορείτε να περιγράψετε τη βασική οθόνη του Word;. 4. Τι ακριβώς κάνει το εργαλείο ζουμ; 5. Ποιους κανόνες ακολουθεί

Διαβάστε περισσότερα

ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΤΗΣ. Εργαλειοθήκη Παρουσιάζετε το έργο σας Εκκινείτε τα σενάριά σας Σταματάτε όλα τα σενάρια. Οι 8 ομάδες της Παλέτας εντολών

ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΤΗΣ. Εργαλειοθήκη Παρουσιάζετε το έργο σας Εκκινείτε τα σενάριά σας Σταματάτε όλα τα σενάρια. Οι 8 ομάδες της Παλέτας εντολών ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΤΗΣ Οι 8 ομάδες της Παλέτας εντολών Εργαλειοθήκη Παρουσιάζετε το έργο σας Εκκινείτε τα σενάριά σας Σταματάτε όλα τα σενάρια Σκηνή Εδώ ζωντανεύει το σενάριό σας Εντολές κάθε ομάδας Αυτή είναι

Διαβάστε περισσότερα

04. Μορφοποίηση περιεχομένων σχεδίου & σύνθετα εργαλεία σχεδίασης

04. Μορφοποίηση περιεχομένων σχεδίου & σύνθετα εργαλεία σχεδίασης 04. Μορφοποίηση περιεχομένων σχεδίου & σύνθετα εργαλεία σχεδίασης Μηχανολογικό Σχέδιο ΙΙ Dr.-Ing. Β. Β. Ιακωβάκης Περιεχόμενα I. Μορφοποίηση οντοτήτων 1. Ιδιότητες οντοτήτων 2. Επιλογή χρώματος 3. Επιλογή

Διαβάστε περισσότερα

Άσκηση 5 Ανύψωση Σχηµάτων. Στόχος της άσκησης

Άσκηση 5 Ανύψωση Σχηµάτων. Στόχος της άσκησης Άσκηση 5 Ανύψωση Σχηµάτων Στόχος της άσκησης Στην παρούσα άσκηση θα δούµε πώς µπορούµε να ανυψώσουµε µία διατοµή κατά µήκος µίας καµπύλης spline, η οποία παίζει το ρόλο της διαδροµής, µε σκοπό να δηµιουργήσουµε

Διαβάστε περισσότερα

Εγχειρίδιο Χρήσης του «Μαθη.Συ.»

Εγχειρίδιο Χρήσης του «Μαθη.Συ.» Εργαστήριο Εκπαιδευτικής Τεχνολογίας Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Φιλοσοφική Σχολή Τμήμα Φ.Π.Ψ., Τομέας Παιδαγωγικής Διευθυντής: Καθ. Χ. Κυνηγός Εγχειρίδιο Χρήσης του «Μαθη.Συ.» Πίνακας

Διαβάστε περισσότερα

Create Sprite at Runtime

Create Sprite at Runtime Create Sprite at Runtime (with ActionScript 3.0) Free Flash Demos Tested on Adobe CS4 Το σενάριο: Να φτιάξεις ένα sprite (που στον «μουσαμά» του να υπάρχει μια ζωγραφιά, π.χ. ένα τετράγωνο). Αυτό να το

Διαβάστε περισσότερα

App Inventor 8ο Μάθημα (Ζωγραφική με τα δάχτυλα)

App Inventor 8ο Μάθημα (Ζωγραφική με τα δάχτυλα) App Inventor 8ο Μάθημα (Ζωγραφική με τα δάχτυλα) Υποπρόγραμμα διαδικασία (procedure) Λήψη φωτογραφιών Σχεδίαση κύκλων και γραμμών σε καμβά Αποθήκευση σχεδίου στη συσκευή. Θα κατασκευάσουμε μια εφαρμογή

Διαβάστε περισσότερα

Περιεχόµενα. Λίγα λόγια από τους συγγραφείς...9. Για τον εκπαιδευτή και το γονέα Αριθµοί και Υπολογισµοί (Numbers and Calculations)

Περιεχόµενα. Λίγα λόγια από τους συγγραφείς...9. Για τον εκπαιδευτή και το γονέα Αριθµοί και Υπολογισµοί (Numbers and Calculations) Περιεχόµενα Λίγα λόγια από τους συγγραφείς...9 Για τον εκπαιδευτή και το γονέα... 11 Αριθµοί και Υπολογισµοί (Numbers and Calculations) ΚΕΦΑΛΑΙΟ 1 Γνωρίζω το Microsoft Excel...15 ΚΕΦΑΛΑΙΟ 2 Εισάγω και

Διαβάστε περισσότερα