Applets Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη δυνατότητα προβολής γραφικών και τη δυνατότητα υλοποίησης ενός γραφικού περιβάλλοντος χειρισμού (GUI) Σε αντίθεση με αυτόνομες εφαρμογές δεν περιέχουν μια κύρια συνάρτηση (main) αλλά περιέχουν συναρτήσεις που εκτελούνται σε καθορισμένα συμβάντα και εκτελούν τον κώδικα που ορίζει ο χρήστης μέσα στην καθεμιά. Για τη δημιουργία ενός applet δημιουργούμε μια υποκλάση της προκαθορισμένης κλάσης Applet Απαιτείται η προσάρτηση του πακέτου java.applet.Applet στον πηγαίο κώδικα import java.applet.Applet; import java.applet.Applet;
Περιορισμοί των applets Δε μπορούν να διαβάσουν ή να γράψουν στο σύστημα αρχείων του χρήστη. Επικοινωνούν μόνο με τον server στον οποίο έχουν αποθηκευθεί. Δε μπορούν να εκτελέσουν προγράμματα στο σταθμό του χρήστη.
Βασικές μέθοδοι των applets public void init( ): Καλείται αυτόματα στην πρώτη εκτέλεση του applet. Εδώ ο προγραμματιστής επιτελεί τις όποιες αρχικοποιήσεις public void start( ): Εκτελείται αυτόματα μετά από την init( ) καθώς και ύστερα από κάθε επαναφορά του appletviewer στο προσκήνιο public void stop( ): Ο κώδικάς της εκτελείται κατά τη μετάβαση του appletviewer στο background appletviewer στο background public void destroy( ): Εκτελείται κατά την παύση της εκτέλεσης του applet (κλείσιμο του browser ή του appletviewer). Σπανίως χρησιμοποιείται. public void paint (Graphics graph): εκτελείται αυτόματα μετά από τη start( ). Εδώ εισάγεται από τον προγραμματιστή κώδικας σχεδίασης. (Απαιτείται η προσθήκη του πακέτου java.awt.Graphics). Η paint εκτελείται επίσης όταν ο προγραμματιστής δίνει εντολή επανασχεδιασμού του γραφικού περιβάλλοντος με τη συνάρτηση repaint ( ). Ο προγραμματιστής καθορίζει σε κάθε μέθοδο τον αντίστοιχο λώδικα που θα εκτελείται ό΄ποτε καλείται η καθεμιά, δηλαδή παρακάμπτει (override) τις συναρτήσεις που έχουν οριστεί στην υπερκλάση java.applet.Applet.
Κύκλος εκτέλεσης applets (με χρήση appletviewer * ) paint(Graphics g)start( )init( )Αρχική εκτέλεση Applet στο background stop( ) Applet στο προσκήνιο start( ) Εντολή επανασχεδιασμού repaint( )paint(Graphics g) * Ορισμένοι web browsers αγνοούν τις συναρτήσεις start( ) και stop( ) κατά τη μεταφορά τους στο προσκήνιο και στο παρασκήνιο και εκτελούν μόνο τη συνάρτηση paint( ) κατά την επαναφορά τους στο προσκήνιο.
Applets και HTML Όλα τα applets εκτελούνται μέσω ιστοσελίδων οι οποίες περιέχουν αναφορά στον κώδικά τους: CODE: Το όνομα του μεταγλωττισμένου αρχείου.class του applet HEIGHT: ύψος του παραθύρου του applet σε pixels WIDTH: πλάτος του παραθύρου του applet σε pixels
Εκτέλεση applets Δύο τρόποι εκτέλεσης: 1. Μέσω του appletviewer στο command prompt: appletviewer MyApplet.html appletviewer MyApplet.html 2. Μέσω web browsers (InternetExplorer, Mozilla, Netscape) ανοίγοντας το αντίστοιχο αρχείο HTML
Παράμετροι στα applets Σε ένα applet μπορούν να μεταβιβαστούν παράμετροι που ορίζονται στον κώδικα της ιστοσελίδας του </APPLET> Αποθήκευση της τιμής παραμέτρου σε3 μεταβλητή string εντός του applet: String getParameter(String paremeterName)
Γραφικά στη Java Ο σχεδιασμός γραφικών αντικειμένων υλοποιείται μέσω της κλάσης Graphics (απαιτείται η προσθήκη του πακέτου java.awt.Graphics) Ένα αντικείμενο της κλάσης Graphics περιέχει μεθόδους για το σχεδιασμό γραμμών και βασικών σχημάτων. Στα applets, οι εντολές σχεδιασμού γραφικών αντικειμένων τοποθετούνται στη συνάρτηση paint
Βασικές μέθοδοι σχεδιασμού της κλάσης Graphics Σχεδίαση γραμμής: void drawLine (int x1, int y1, int x2, int y2); void drawLine (int x1, int y1, int x2, int y2); Σχεδίαση string: void drawString (String str, int x_pos,int y_pos); Σχεδίαση ορθογωνίου: void drawRect (int x1,int y1,int x2,int y2); x y Σύστημα συντεταγμένων ενός applet: Θετικές τιμές του x προς τα δεξιά Θετικές τιμές του y προς τα κάτω
Χρώματα Δυνατότητα αλλαγής χρωμάτων των σχημάτων (foreground) και του φόντου μέσω της κλάσης Color (πακέτο java.awt.Color) Κατασκευαστής της κλάσης Color: Color(int r, int g, int b); r, g, b: χρωματικές συνιστώσες κόκκινου, πράσινου και μπλε αντίστοιχα r, g, b: χρωματικές συνιστώσες κόκκινου, πράσινου και μπλε αντίστοιχα 0 ≤ r, g, b ≤ ≤ r, g, b ≤ 255 Προκαθορισμένα βασικά χρώματα π.χ. Color.red, Color.blue, Color.gray κ.λ.π.
Γραμματοσειρές Εκπροσωπούνται από αντικείμενα της κλάσης Font (πακέτο java.awt.Font) Κατασκευαστής: Font (String name,int style, int size) String name: όνομα γραμματοσειράς (case insensitive) πχ “TimesRoman”,”Arial” int style: Στυλ γραμματοσειράς. Στο πακέτο Font έχουν προκαθοριστεί σταθερές: 1. Απλή: Font.PLAIN 2. Έντονη: Font.BOLD 3. Πλάγια: Font.ITALIC 4. Έντονη πλάγια: Font.BOLD | Font.ITALIC int size : μέγεθος γραμματοσειράς
Μέθοδοι της κλάσης Font getName( ); Επιστρέφει το όνομα της γραμματοσειράς getStyle( ); Επιστρέφει το στύλ της γραμματοσειράς getSize( ); Επιστρέφει το μέγεθος της γραμματοσειράς Bool isPlain( ); true if plain Bool isBold( ); true if bold Bool isItalic ( ); true if italic
Μέθοδοι των applets κληρονομούμενες από υπερκλάσεις Η κλάση applet, όντας υποκλάση άλλων προκαθορισμένων κλάσεων της Java, κληρονομεί μεθόδους τους. Ο προγραμματιστής μπορεί να συμπεριλάβει στα applets του μεθόδους υπερκλάσεων, με σκοπό τη δημιουργία ενός γραφικού περιβάλλοντος (GUI). (Περισσότερα στη διάλεξη “Abstract Windowing Toolkit”) Μεταξύ των μεθόδων συμπεριλαμβάνονται και συναρτήσεις αλλαγής χρωμάτων, καθορισμού γραμματοσειρών κλπ.
Μέθοδοι των applets κληρονομούμενες από υπερκλάσεις Ορισμός χρωμάτων προσκηνίου και φόντου: void setForeground(Color c); void setForeground(Color c); void setBackGround(Color c); void setBackGround(Color c); Color getForeground( ); Color getForeground( ); Color getBackground( ); Color getBackground( ); Ορισμός γραμματοσειρών: public void setFont ( Font f ); public Font getFont ( );