Γιώργος Γεωργοβασίλης

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Δημιουργία Ιστοσελίδων σε HTML και FrontPage Πρόγραμμα Αναμόρφωσης Προπτυχιακών Σπουδών Κεντρικό Γραφείο Υποστήριξης Εκπαιδευτικού Έργου Αλέξανδρος Λεκατσάς.
Advertisements

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση.
ΔΙΑΧΕΙΡΙΣΗ ΕΙΣΟΔΟΥ – ΕΞΟΔΟΥ (INPUT/OUTPUT)
Στοιχειώδεις Δομές Δεδομένων TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Τύποι δεδομένων στη Java • Ακέραιοι.
Νήματα στη Java Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΔΙΑ ΒΙΟΥ ΜΑΘΗΣΗΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ
MySQL + Γλώσσα Προγραμματισμού
ΕΠΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ – ΜΗΧΑΝΗΣ Εαρινό Εξάμηνο 2007 Παρουσίαση Εργαλείου Ανάπτυξης JBuilder Τσουρού Σταυρούλα, ΑΜ 708 Μαδεμλής Ιωάννης, ΑΜ 669.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Αντικείμενα ως ορίσματα.
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Η βιβλιοθήκη κλάσεων της Java
Δ.Π.Θ. Συνδέοντας έγγραφα - 1 Συνδέοντας έγγραφα Μια σύνδεση στο Web (link) αποτελείται από δύο μέρη : Aυτό που βλέπουμε στη σελίδα και λέγεται άγκυρα.
24/11/2003Message Passing Interface (MPI)1 Αθήνα, Νοέμβριος 2003 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
Πανεπιστήμιο Ιωαννίνων Ανάκτηση Πληροφορίας Τμήμα Πληροφορικής Ακαδημαϊκό Έτος MapReduce: Simplified Data processing on Large Clusters Φώτης.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 11: Intro to Applets Εβδομάδα 11: Εισαγωγή στα Applets.
Μέλη ομάδας Μαρία Στυλιανού Νίκος Οδυσσέως Γεωργία Χριστοδουλίδου
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 10: Graphical User Interfaces Εβδομάδα 10: Εισαγωγή στα Γραφικά Περιβάλλοντα.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 4: Exceptions Εβδομάδα 4: Εξαιρέσεις [Exceptions]
Uniform Resource Locators (URLs) Ορισμός : URL (Uniform Resource Locator): Δείκτης σε μία πηγή πληροφοριών του Παγκοσμίου Ιστού (World Wide Web) Στη Java,
JAVA και SQL Δαμιανός Χατζηαντωνίου
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
Γραφικά Ενδιάμεσα Χρήστη στην Java
Java A Crash Course in (Προσέγγιση μέσω UML)
Σύγκριση Java και C++ Μεταπτυχιακό Εφαρμοσμένης Πληροφορικής - Αλέξανδρος Χατζηγεωργίου, Νοέμβριος 2004.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING Επισκόπηση.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
© 2012 Microsoft Corporation. Με την επιφύλαξη κάθε νόμιμου δικαιώματος. Προγραμματισμός σύσκεψης Lync Μπορείτε να προγραμματίσετε μια σύσκεψη Lync χρησιμοποιώντας.
Εισαγωγή σε Android Δομή αρχείων σε Android Projects
Google's Google App Engine and Google's Datastore API Andreas Manoli.
Επικοινωνία Ανθρώπου Μηχανής Καρακίτσος Ηλίας ΑΜ 614 Ιωάννου Ελένη ΑΜ 647.
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Διασύνδεση Java Εφαρμογών με ΒΔ Π. Φιτσιλής 1.
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
Εισαγωγή στη JAVΑ (μέρος Α’)
Εισαγωγή στο OpenGL.
Applets Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη δυνατότητα προβολής γραφικών και τη δυνατότητα υλοποίησης ενός γραφικού.
ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ ΚΑΤΕΥΘΥΝΣΗ «Υπηρεσίες Πληροφόρησης σε Ψηφιακό Περιβάλλον» ΤΙΤΛΟΣ ΜΑΘΗΜΑΤΟΣ « Ηλεκτρονική Δημοσίευση.
Γράφημα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Συνδυαστικό αντικείμενο που αποτελείται από.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
Tomcat Θ. Βαρβαρίγου Καθηγήτρια ΕΜΠ Τηλ
Κεφάλαιο 11.1 Uniform Resource Locators (URLs). Ορισμός : URL (Uniform Resource Locator): Δείκτης σε μία πηγή πληροφοριών του Παγκοσμίου Ιστού (World.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές.
Threads Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά η μία μετά.
Applets Εκτελούνται από τον appletviewer και από Java enabled web browsers Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη.
Κεφάλαιο 4 Εξαιρέσεις. Όταν σε ένα πρόγραμμα συμβεί κάποιο λάθος, ο κώδικας εγείρει (throw) μία εξαίρεση. Στη Java oι εξαιρέσεις εκπροσωπούνται από αντικείμενα.
Εισαγωγή στη Java (Μέρος B’) Για όσους γνωρίζουν C++ Βασίλης Στούμπος
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα.
ΕΙΣΑΓΩΓΉ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΉ ΝΊΚΟΣ ΠΑΠΑΔΆΚΗΣ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ.
Όνομα: Μνημονική ακολουθία χαρακτήρων που χρησιμοποιείται για να παραστήσει κάτι άλλο. Αφαίρεση –Αφαίρεση ελέγχου –Αφαίρεση δεδομένων Δέσμευση: Σύνδεση.
Εισαγωγή στον Προγ/μό Η/Υ Ενότητα 7 – 2ο μέρος: Επιπλέον έννοιες σχετικά με αντικείμενα Διδάσκων: Μιχάλης Τίτσιας.
Παρουσίαση Πτυχιακής Εργασίας Τεχνολογία powerline homeplug για τη δημιουργία του «έξυπνου» σπιτιού και εφαρμογή της στην κατασκευή αλληλεπιδραστικής διεπαφής.
Εισαγωγή στον Προγ/μό Η/Υ
Ιωάννης Πρίγγουρης Java Server Pages Ιωάννης Πρίγγουρης
Κατανεμημένα Συστήματα
Software Engineering for Web Applications
Κλάσεις και αντικείμενα
Ιωάννης Πρίγγουρης Εργαστήριο Διάχυτου Υπολογισμού Παν. Αθηνών
Προγραμματισμός κινητών συσκευών
Εισαγωγή στη Java (Μέρος Α’)
Εξαιρέσεις [Exceptions]
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Μεταγράφημα παρουσίασης:

Γιώργος Γεωργοβασίλης georgeg@di.uoa.gr Μια εισαγωγή στο J2ME Daemon τεύχος 11 Γιώργος Γεωργοβασίλης georgeg@di.uoa.gr

Τι θα δούμε J2ME – Java για μικρές συσκευές Κοινά και διαφορές Βήματα για τη συγγραφή, εγκατάσταση και εκτέλεση μιας εφαρμογής Χρηστική διεπαφή Εφαρμογές δικτύου Ασφάλεια Πολυμέσα Μια εισαγωγή στο J2ME

J2ME – Java για μικρές συσκευές Java (KVM) σε PDA, κινητά τηλέφωνα, μικροσυσκευές, χρήση των εξειδικευμένων λειτουργιών τους Αποτελεσματική διαχείριση πόρων (garbage collection, threads) Κοινό προγραμματιστικό περιβάλλον Ασφάλεια Το J2ME φέρνει την java σε μικρές συσκευές, με όλα τα πλεονεκτήματα και τα μειονεκτήματά της. Αν σας αρέσει η Java, τότε το J2ME σας αφήνει εύκολα να χρησιμοποιήσετε όσα ξέρετε για να γράψετε εφαρμογές για μικρές συσκευές χωρίς να χρειαστεί να μάθετε πολλά από την αρχή. Στα κινητά τηλέφωνα, στα οποία θα εστιάσουμε, προσφέρεται πρόσβαση σε ειδικές λειτουργίες, όπως: Πραγματοποίηση κλήσεων Λήψη κλήσεων Αποστολή / παραλαβή γραπτών μηνυμάτων Πρόσβαση στον τηλεφωνικό κατάλογο και κατάλογο διευθύνσεων Πρόσβαση σε άλλες συσκευές μέσω bluetooth Location based services, μέσω της επικοινωνίας με GPS ή ανακτώντας την θέση από το δίκτυο του τηλεπικοινωνιακού παρόχου. Η εκτέλεση των εφαρμογών είναι πιο αργή από κώδικα μηχανής και λόγω περιορισμένων πόρων συνήθως δεν υπάρχουν οι βελτιστοποιητές που συναντούμε στις JVM για τα PC. Αυτά ήταν και τα κακά νέα. Διαχειρίζεται αποτελεσματικά την μνήμη, προλαμβάνοντας τον κατακερματισμό της. Φέρνει πολυνηματική χρονοδρομολόγιση (threads) σε πλατφόρμες που δεν παρέχουν την δυνατότητα αυτή. Ο τυπικός κώδικας java είναι μικρότερος σε όγκο από τον αντίστοιχο κώδικα μηχανής. Παρέχει ένα κοινό περιβάλλον εκτέλεσης στα προγράμματα. Για τους κατασκευαστές κινητών τηλεφώνων φέρνει έτοιμες λειτουργίες που ειδάλλως αυτοί θα έπρεπε να υλοποιήσουν (παράδειγμα: αναπαραγωγή wav και midi, jpeg και png, αναπαραγωγή flash, xml, ssl/https) Η KJVM δεν επιτρέπει πρόσβαση στις λειτουργίες χαμηλού επιπέδου του ΛΣ. Τα προγράμματα J2ME δηλ παραμένουν πάντοτε εφαρμογές του χρήστη, δεν αποκτούν δικαιώματα υπηρεσίας συστήματος. Οι εφαρμογές μπορούν να υπογραφούν από τον κατασκευαστή (certificates). Μια εισαγωγή στο J2ME

Κοινά και διαφορές Κοινά με την J2SE: java.lang java.util java.io … … και διαφορές: java.lang.ref java.lang.reflection java.awt javax.swing … Το J2ME διατηρεί κοινές αρχές με την ‘μεγάλη’ java: Οι συμβολοσειρές είναι όπως τις ξέραμε (συνεχίζεται ο διαχωρισμός String/StringBuffer!) Τα Streams είναι όπως τα ξέραμε Και κάποιες διαφορές: Classloaders, reflection, references, proxy δεν υπάρχουν MIDP 1.0 δεν έχει float/double Δεν υποστηρίζονται συστήματα αρχείων. Αντ’αυτού υπάρχουν τα record stores Και μετά η λίστα μεγαλώνει: awt, swing, sql, xml κλπ απουσιάζουν, όχι εντελώς απρόσμενα… Μια εισαγωγή στο J2ME

Δημοσίευση σε ένα webserver 1,2,3… Μεταγλώττιση *.class Προέλεγχος *.class Παραγωγή Jar και Jad MyApp.jar MyApp.jad Η μεταγλώττιση της εφαρμογής γίνεται με τον κανονικό μεταγλωττιστή java, αρκεί να έχουμε ορίσει τις βιβλιοθήκες του j2me σαν βιβλιοθήκες συστήματος Επειδή η KVM έχει λιγότερες δυνατότητες ελέγχου της ορθότητας του κώδικα, απαιτείται το στάδιο του προελέγχου. Παράγει νέο κώδικα, ο οποίος και καταλήγει στο jar. Στο jar συγκεντρώνονται κώδικας και δεδομένα (λ.χ. εικόνες). Σε αντίθεση με το j2me μια εφαρμογή αποτελείται από ένα και μόνο jar. Δεν μπορούμε να εγκαταστήσουμε κοινές βιβλιοθήκες για περισσότερες εφαρμογές. Το jar και το jad εγκαθιστώνται σε μια δικτυακή τοποθεσία όπου η συσκευή j2me μπορεί να το βρει μέσω http. Αυτό μπορεί να είναι ένα webserver στη γενική περίπτωση ή, ειδικά και ανά κατασκευαστή, μια επικοινωνία μέσω bluetooth, καλωδίου κ.λ.π Να προσέξουμε το περιεχόμενο του κειμένου http να δηλώνεται ως ‘Content-Type: text/vnd.sun.j2me.app-descriptor’ Δημοσίευση σε ένα webserver http://location/MyApp.jad Σύνδεση στο webserver μέσω GPRS και εγκατάσταση στο κινητό Μια εισαγωγή στο J2ME

KToolbar Το KToolbar είναι ένα απλό περιβάλλον ανάπτυξης της Sun για το J2ME Πακετάρει Jar Κατασκευάζει Jad Χρήσιμο για ρυθμίσεις ασφάλειας Το KToolbar δεν είναι IDE. Απλώς συμμαζεύει κώδικα και resources (εικόνες, ήχους και λοιπά δεδομένα), επιτρέπει στον προγραμματιστή να ορίσει πληροφορίες (όνομα εταιρίας λ.χ. ή απαιτούμενες ρυθμίσεις ασφαλείας) και κατασκευάζει τα jar και jad. Επίσης μπορεί να τρέξει την εφαρμογή μέσω μιας προσομοίωσης συσκευής. Μια εισαγωγή στο J2ME

KToolbar Μια εισαγωγή στο J2ME Η πρώτη άποψη του KToolbar. Εδώ ορίζουμε και χειριζόμαστε projects. Μια εισαγωγή στο J2ME

KToolbar Επεξεργασία των εγγραφών του jad Μια εισαγωγή στο J2ME

KToolbar Μια εισαγωγή στο J2ME Προχωρημένες ρυθμίσεις ασφάλειας. Εδώ επιτρέπουμε (ή απαγορεύουμε) πρόσβαση σε βιβλιοθήκες. Αργότερα, ο χρήστης κατά την εγκατάσταση της εφαρμογής μπορεί να γνωρίσει ποιες λειτουργίες χρησιμοποιεί η εφαρμογή. Μια εισαγωγή στο J2ME

Παράδειγμα JAD MIDlet-1: MyMidlet, res/icon.png, package.MainClass MIDlet-Description: This is my Midlet MIDlet-Jar-Size: 219381 MIDlet-Jar-URL: http://www.myserver.gr/george/midlet.jar MIDlet-Name: George’s Demo MIDlet-Vendor: George MIDlet-Version: 2.0 Manifest-Version: 1.0 MicroEdition-Configuration: CLDC-1.0 MicroEdition-Profile: MIDP-2.0 Το κινητό τηλέφωνο συνδέεται μέσω http σε ένα webserver, ανακτά το JAD, δείχνει κάποιες πληροφορίες από αυτό στο χρήστη και, εφ’ όσον συμφωνεί, ανακτά το jar και το εγκαθιστά. Μια εισαγωγή στο J2ME

Χρηστική διεπαφή Δεν υπάρχουν παράθυρα, μόνο οθόνες Εφαρμογές με φόρμες Εφαρμογές γραφικών Το J2ME δεν περιέχει τις βιβλιοθήκες awt και swing. Εδώ τρέχει μία εφαρμογή κάθε φορά σε ένα μόνο παράθυρο το οποίο εκτείνεται σε όλη την ελεύθερη επιφάνεια της οθόνης. Πάραυτα η εφαρμογή δεν μπορεί να υποθέσει ότι της ανήκει συνεχώς όλη η οθόνη, αφού θα μπορούσαν να εμφανιστούν μηνύματα από το κινητό τηλέφωνο (λ.χ. εισερχόμενη κλήση). Έτσι, ανά περίπτωση, πρέπει να είναι προετοιμασμένη για επανασχεδιασμό των περιεχομένων της οθόνης. Μπορούμε να γράψουμε είτε μια εφαρμογή βασισμένη σε φόρμες (όπου οι δυνατότητες και ο χειρισμός μοιάζουν με WML) είτε μπορούμε κατευθείαν να ζωγραφίζουμε σχήματα στην οθόνη. Η χρήση και των δυο τρόπων στην ίδια οθόνη δεν είναι δυνατή. Μια εισαγωγή στο J2ME

Χρηστική διεπαφή: φόρμες Μια φόρμα κατασκευάζεται παρόμοια με τον τρόπο που ‘γεμίζουμε’ ένα JPanel Τύποι πεδίων: ChoiceGroup, CustomItem, DateField, Gauge, ImageItem, Spacer, StringItem, TextField Στο MIDP 2.0 υπάρχει η δυνατότητα ορισμού δικών μας τύπων πεδίων (Item) Όπως στο swing, εδώ υπάρχει η έννοια της συγγραφής μιας φόρμας και εμπλουτισμού της με πεδία (Items) όπως ετικέτες, πεδία κειμένου, λίστες κ.λ.π. Μια φόρμα κάθε φορά καταλαμβάνει ολόκληρη την οθόνη. Υπάρχουν διαφορετικοί τύποι πεδίων, έχουν σημειωθεί με ειδικό χρώμα οι τύποι που υπάρχουν μόνο στο MIDP 2.0 Δεν υπάρχει η ευελιξία σύνθεσης πολύπλοκων φορμών (φόρμες από φόρμες) ή δικών μας τύπων πεδίων (μόνο στο MIDP 2.0). Τα περισσότερα κινητά τηλέφωνα ολισθαίνουν την οθόνη κάθετα για μεγάλες φόρμες. Δεν είναι δυνατή η ακριβής ή και σχετική (με προηγούμενο πεδίο) τοποθέτηση ενός πεδίου, το ένα πάει μετά το άλλο. Δυστυχώς δεν υπάρχουν ‘κουμπιά’ μέχρι το MIDP 2.0 με τα οποία θα μπορούσαν να συνδεθούν δραστηριότητες. Μια εισαγωγή στο J2ME

Φόρμες, παράδειγμα 1 Μια εισαγωγή στο J2ME Βλέπουμε μια φόρμα με ένα τίτλο (Ταινίες & σινεμά), μια επεξηγηματική ετικέτα (Αναζήτηση ταινιών), ένα πεδίο εισαγωγής κειμένου (Άννα και ο βασιλιάς) με την επεξήγησή της (Ταινία). Κάτω δεξιά η μοναδική εντολή ‘Φόρτωση’ που έχει αντιστοιχηθεί σε ένα πλήκτρο. Μια εισαγωγή στο J2ME

Φόρμες, παράδειγμα 1 import javax.microedition.lcdui.*; public class SearchForm extends Form{ public SearchForm() { super("Ταινίες & σινεμά"); append(new StringItem("Αναζήτηση ταινιών","")); append(new TextField("Ταινία", "", 30, TextField.ANY)); } ... Στο παράδειγμα κατασκευάζω μια φόρμα με ένα τίτλο [super()], ένα κείμενο [StringItem] και ένα πεδίο εισαγωγής κειμένου (TextField) Τα πεδία της φόρμας προστείθονται το ένα κάτω από το άλλο και δεν έχουμε τρόπο ακριβούς τοποθέτησης τους Μια εισαγωγή στο J2ME

Φόρμες, παράδειγμα 2 Κάθε φόρμα συνδέεται με εντολές οι οποίες εμφανίζονται σαν μενού στις επιλογές. Η αναπαράσταση και ο χειρισμός του μενού διαφέρει από συσκευή σε συσκευή Μια εισαγωγή στο J2ME

Φόρμες, παράδειγμα 2 Μια εισαγωγή στο J2ME Μενού με περισσότερες εντολές. Μια εισαγωγή στο J2ME

Φόρμες, παράδειγμα 2 Command moviesCmd = new Command("Ταινίες", Command.ITEM, 1); Command cinemasCmd = new Command("Σινεμά", Command.ITEM, 2); Command loadCmd = new Command("Φόρτωση", Command.ITEM, 3); addCommand(loadCmd); addCommand(cinemasCmd); addCommand(moviesCmd); setCommandListener(this); Εδώ κατασκευάζουμε και προσθέτουμε τρεις εντολές, οι οποίες θα εμφανίζονται σαν εγγραφές του μενού. Μια εισαγωγή στο J2ME

Φόρμες, παράδειγμα 2 public void commandAction(Command command, Displayable displ) { if (command == moviesCmd) Display.getDisplay(CinemaMain.main).setCurrent(movieList); if (command == loadCmd) loadContent(); } Εδώ δίνω ένα παράδειγμα του χειρισμού εντολών. Όταν ο χρήστης επιλέξει μια εγγραφή από το μενού θα κληθεί η μέθοδος commandAction με ορίσματα την εντολή και την φόρμα για την οποία κλήθηκε. Μια εισαγωγή στο J2ME

Χρηστική διεπαφή: οθόνη γραφικών Πλήρης έλεγχος των περιεχομένων της οθόνης Προσπέλαση της οθόνης με αντικείμενο Graphics Στο MIDP 2.0: GameCanvas, Layers Εδώ καλείται η μέθοδος paint(Graphics g) του αντικειμένου της οθόνης, με το οποίο μπορούμε να σχηματίσουμε γραμμές, πολύγωνα, κύκλους, να ζωγραφίσουμε εικόνες και συμβολοσειρές. Η paint (δυστυχώς) καλείται όπως και στο swing από τον διαχειριστή της οθόνης, δηλ. δεν υπάρχει εγγύηση για το πότε ακριβώς θα κληθεί. Στο MIDP 2.0 υπάρχει ένας νέος τρόπος χειρισμού της οθόνης, το GameCanvas, το οποίο ουσιαστικά μας επιτρέπει να γράφουμε εφαρμογές του τύπου: While (gameNotOver) { keyCode = getPressedKeys(); reactToKey(keyCode); paint(); sleep(200); } Τα layers ζωγραφίζονται αυτόματα από τον layer manager. Μπορούμε έτσι να συνθέσουμε σκηνικά πολύ μεγαλύτερα από την οθόνη με αλληλοεπικαλυπτόμενα σχήματα χωρίς να χρειάζεται να υπολογίζουμε ποιο πρέπει να ζωγραφιστεί πρώτα και πιο μετά, να υπολογίζουμε την μετατόπιση της ολίσθησης κλπ. Μια εισαγωγή στο J2ME

Εφαρμογές δικτύου Πριν το MIDP 2.0 υπάρχει μόνο το HttpConnection Στο MIDP 2.0 HttpsConnection, ServerSocketConnection, UDPDatagramConnection Πριν το MIDP 2.0 υπήρχε μόνο η δυνατότητα σύνδεσης του πελάτη στο υπηρέτη μέσω του πρωτοκόλλου http. Τώρα οι συσκευές μπορούν να ανοίγουν TCP/IP και UDP συνδέσεις και να δέχονται εισερχόμενες συνδέσεις και πακέτα. Μια εισαγωγή στο J2ME

Εφαρμογές δικτύου, παράδειγμα StreamConnection c = null; InputStream s = null; c = (StreamConnection)Connector.open(url); s = c.openInputStream(); int ch; while ((ch = s.read()) != -1) { ... } Ένα παράδειγμα σύνδεσης http και ανάγνωσης του περιεχομένου Μια εισαγωγή στο J2ME

Ασφάλεια (1) Τα jar, όπως και στη J2SE μπορούν να υπογραφούν Η εφαρμογή είναι ‘κλειστή’, δηλ. δεν μπορεί να εγκαταστήσει κοινές βιβλιοθήκες για άλλες εφαρμογές Τα δεδομένα μιας εφαρμογής δεν διαμοιράζονται με άλλες εφαρμογές εκτός αν ζητηθεί ρητά Οι εφαρμογές δεν μπορούν να επικοινωνήσουν μεταξύ τους ‘εσωτερικά’ Το jar μπορεί να υπογραφεί με ένα δημόσιο πιστοποιητικό γνησιότητας ώστε να ταυτοποιηθεί η προέλευση και οντότητα της εφαρμογής Σε αντίθεση με το τι συμβαίνει στο J2SE μια εφαρμογή αποτελείται από ένα μόνο jar και το classpath περιορίζεται σε τοποθεσίες μέσα στο jar Το record store είναι μοναδικό για κάθε εφαρμογή και δεν μπορεί να μοιραστεί με άλλες εφαρμογές. Στο MIDP 2.0 δίδεται αυτή η δυνατότητα αν ζητηθεί ρητά. Οι εφαρμογές δεν μπορούν να επικοινωνήσουν μεταξύ τους λ.χ. γράφοντας ή διαβάζοντας κοινά αρχεία ή διαμοιραζόμενες προγραμματιστικές διεπαφές. Μπορούν να επικοινωνήσουν μόνο μέσω εξωτερικών (από τον χρήστη ελεγχόμενων) διαύλων όπως το δίκτυο, bluetooth, στέλνοντας SMS η μία στην άλλη κ.λ.π. Μια εισαγωγή στο J2ME

Ασφάλεια (2) Κρυπτογράφηση δικτυακής επικοινωνίας Ελεγχόμενη πρόσβαση σε λειτουργίες όπως δίκτυο, βιβλίο διευθύνσεων, μόνιμη μνήμη Ελεγχόμενη πρόσβαση σε βιβλιοθήκες (API) Πριν το MIDP 2.0 με εξωτερικές βιβλιοθήκες μπορεί να χρησιμοποιηθεί το https, τώρα είναι μέρος του συστήματος Ο χρήστης ερωτάται όταν η εφαρμογή απαιτεί πρόσβαση σε εξωτερικούς πόρους Μέσω του jad μπορεί να επιτραπεί ή να απαγορευτεί η πρόσβαση σε βιβλιοθήκες (packages). Αυτό δεν είναι ακριβώς αληθές, γιατί εδώ εμπλέκεται ο μηχανισμός ασφαλείας όπως τον ξέρουμε από το J2SE, δηλ ορίζονται security managers οι οποίοι ενεργοποιούνται (ή απενεργοποιούνται) κατ’ επιλογή. Μια εισαγωγή στο J2ME

Πολυμέσα Η κλάση Player υποστηρίζει διάφορα είδη πολυμέσων, όπως wav, mp3, AVI κ.λ.π. Υποστηρίζει έναρξη, παύση και μετακίνηση στον χρονικό άξονα Οι συγκεκριμένες δυνατότητες αναπαραγωγής πολυμέσων του Player εξαρτώνται από τον κατασκευαστή. Οι δυνατότητες μετακίνησης στο μέσο ουσιαστικά είναι start/stop/eject/fast forward/fast backward/set loop count Μια εισαγωγή στο J2ME

Αναφορές J2ME http://java.sun.com/j2me/index.jsp Nokia Developer http://www.forum.nokia.com/main.html Μια εισαγωγή στο J2ME