Curs-6-java

  • Uploaded by: Valentin
  • 0
  • 0
  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Curs-6-java as PDF for free.

More details

  • Words: 5,070
  • Pages: 11
Programare Java Curs – 6 CREAREA DE PROGRAME INTERACTIVE PENTRU WEB Prima oara cand au aparut pe scara larga aplicatiile Java pentru web a fost in 1995 , atunci cand Netscape Navigator a inceput sa ruleze applet-uri . In general o aplicatie Java dedicata utilizarii pe web , in cadrul unei pagini HTML , se numeste applet si are o structura diferita fata de o aplicatie normala scrisa in limbajul Java . DIFERENTA INTRE APPLET-URI SI APLICATII Aceasta diferenta consta in principal in modul cum acestea sunt rulate . Aplicatiile sunt rulate prin intermediul unui interpretor Java care incarca fisierul clasa principal al aplicatiei . Acest lucru se face de obicei din linia de comanda falosind utilitarul “java.exe” al pachetului Java2 SDK ( sau JDK in versiunile mai vechi ) . Pe de alta parte , applet-urile sunt rulate de orice browser care suporta Java – cum ar fi Netscape Navigator , Internet Explorer , Sun HotJava sau Opera . Applet-urile pot fi testate si cu ajutorul utilitarului “appletviewer.exe” , inclus in pachetul Java2 SDK . Trebuie mentionat ca “appletviewer” ignora toate celelalte elemente ale paginii web in care inseram applet-ul nostru scris in Java . Pentru a rula un applet acesta trebuie iglobat intr-o pagina web folosind tag-uri HTML , in acelasi mod in care sunt inglobate imagini sau alte elemente . Atunci cand un utilizator cu un browser compatibil cu Java incarca o pagina web care contine un applet , browser-ul trajsfera codul applet-ului de pe serverul web si il executa pe sistemul local al utilizatorului . Nu este nevoie de un interpretor Java separat – el este inclus in browser . Ca orice aplicatie , un applet Java contine un fisier clasa si orice alte clase externe necesare rularii . Biblioteca de clase standard a Java este inclusa automat . Deoarece applet-urile Java ruleaza in cadrul unui browser Java , o parte din efortul crearii unei interfete utilizator este eliminata ; exista deja o fereastra in care applet-ul poate rula , un loc unde sa se afiseze grafica si de unde sa se primeasca datele de intrare precum si interfata browser-ului . OBS : Este posibil ca un program Java sa functioneze atat ca applet cat si ca aplicatie independenta . Cu toate ca pentru crearea acestor tipuri de programe se folosesc proceduri separate , acestea nu intra in conflict una cu alta . Caracteristicile specifice applet-urilor vor fi ignorate atunci cand programul ruleaza ca aplicatie si viceversa . ALEGEREA VERSIUNII DE JAVA PENTRU DEZVOLTARE In cazul crearii de applet-uri Java pentru web un programator mai are o problema suplimentara in afara de preogramarea propriu-zisa ; programul sau trebuie sa poata rula pe toate browser-ele existente ( mai realist vorbind pe cat mai multe dintre ele ) . In acest moment Java 1.02 este singura versiune de limbaj suportata absolut complet atat de Netscape Navigator cat si de Microsoft Internet Explorer ( aplicatii ce detin in jur de 90 de procente din piata browser-elor ) . Netscape si Microsoft au implementat si versiunile Java 1.1 si 2 ( la momentul actual – inceputul lui 2002 – ultima versiune ) dar implementarile mai produc anumite surprize neplacute , in unele cazuri existand applet-uri care nu functioneaza corect in cazul programarii lor folosind ultima versiune a limbajului . Sun a gasit o modalitate de a ocoli aceste neajunsuri creand un program add-on ( complementar ) pentru browser-e , denumit Java Plug-in , care ne permite sa utilizam imbunatatirile aduse de Java 1.2 sau Java 2 . Acest program add-on este continut in pachetul JDK 1.2 si in toate celelate versiuni ale

1

mediului de dezvoltare : 1.3 si 1.4 ( ultima versiune la momentul februarie 2002 a pachetului de dezvoltare al Sun pentru limbajul Java 2 numindu-se Java2 SDK 1.4.0 ) . In general in acest moment se aplica o formula destul de bizara :

-

applet-urile se scriu folosind elemente Java 1.02 deoarece functioneaza pe toate browser-ele compatibile Java aplicatiile se scriu folosind Java 2 deoarece pot fi rulate pe orice sistem care contine un interpretor Java

Java 2 a fost proiectat astfel incat un program care foloseste numai facilitatile Java 1.02 sa se poata compila si sa ruleze cu succes in cadrul unui browser compatibil Java . Daca un applet foloseste una dintre facilitatile introduse de Java 1.1 sau Java 2 programul nu va rula pe browser-ele care nu suporta aceste versiuni si care nu au instalat add-on-ul de care aminteam mai sus . De multe ori imbunatatirile aduse limbajului de versiunile 1.1 sau 2 nici nu sunt vitale pentru aplicatiile de tip applet , gasindu-si o utilitate mult mai mare in domeniul aplicatiilor Java independente . In unele cazuri de applet-uri scrise pentru Java 1.02 compilatorul ne va atentiona ca anumite elemente au fost inlocuite si ca exista o solutie mai buna ; aceste atentionari ( warnings ) nu sunt mesaje de eroare ale compilatorului , SDK-ul creand un fisier clasa compilat si atragand doar atentia programatorului . RESTRICTII DE SECURITATE ALE APPLET-URILOR Deoarece applet-urile Java sunt executate pe sistemul local al utilizatorului exista unele restrictii foarte serioase referitoare la activitatile de care este capabil un applet . Daca aceste restrictii nu ar exista un programator Java ar putea scrie fara probleme un program care sa stearga toate fisierele de pe un hard disk , sa colecteze informatii private sau sa realizeze diferite brese in securitatea sistemului . Ca regula generala , applet-urile Java functioneaza dupa principiul “better safe than sorry “ ; unui applet ii sunt interzise urmatoarele activitati : -

sa citeasca sau sa scrie pe sistemul local al utilizatorului sa comunice cu un alt site decat cel de unde provine pagina web ce contine applet-ul sa ruleze programe executabile in sistemul local al utilizatorului sa incarce programe din sistemul utilizatorului ( executabile sau biblioteci partajate )

Toate aceste reguli se aplica applet-urilor in mod normal dar exista si posibilitatea ( din configurarea browser-elor ) de a modifica nivelul de securitate dorit , permitand accesul din anumite directoare sau conexiuni catre anumite site-uri . De exemplu , utilitarul “appletviewer.exe” permite definirea unei liste de control al accesului pentru directoarele unde applet-ul poate citi sau scrie fisiere . In practica insa trebuie sa tinem seama de posibilitatea de a intalni restrictii de securitate maxime iar pentru evitarea problemelor programatorul trebuie sa tina seama de actiunile care ii sunt teoretic interzise unui applet . O facilitate nou introdusa de Java 2 este foarte importanta in problema securitatii ; noua versiune a limbajului permite folosirea unor controale de securitate specifice care pot fi introduse sau eliminate din applet-uri si aplicatii . Aceste elemente dau posibilitatea unui utilizator web sa acorde “incredere” unui applet astfel incat acesta sa poata rula fara restrictii pe sistemul local . CREAREA APPLET-URILOR Un program Java contine o metoda main() , folosita pentru crearea obiectelor , stabilirea variabilelor de instanta si apelarea altor metode . Applet-urile nu poseda o metoda main() care sa fie apelata automat la lansarea programului . In schimb exista mai multe metode apelate in diferite puncte ale executiei unui applet .

2

Toate applet-urile sunt subclase ale clsei Applet , care apartine pachetului java.applet . Clasa Applet prezinta doua tipuri de comportament , care trebuie sa fie comune tuturor applet-urilor : -

capacitatea de a opera ca parte a browser-ului si de a trata evenimente ( cum ar fi de exemplu incarcarea paginii in browser ) capacitatea de a prezenta o interfata grafica pentru utilizator si de a prelua date de intrare de la utilizator

Cu toate ca un applet poate folosi orice alte clase are nevoie , clasa Applet este clasa principala care declanseaza executia unui applet . Subclasele pe care le vom crea , apartinand clasei Applet , vor avea formula : public class appletNou extends java.applet.Applet { // cod sursa } Toate applet-urile trebuie declarate public deoarece clasa Applet este o clasa publica . Aceasta cerinta este valabila numai pentru clasa principala a applet-ului ; orice alte clase externe pot fi publice sau private . Atunci cand un browser compatibil Java intalneste un applet Java intr-o pagina web , clasa applet-ului este incarcata impreuna cu celelalte clase externe folosite . Browser-ul creaza automat o instanta a clasei applet-ului si apeleaza metode ale clasei Applet atunci cand au loc anumite evenimente . Diferite applet-uri care folosesc aceeasi clasa folosesc instante diferite deci vom putea introduce mai multe copii ale applet-ului in aceeasi pagina si fiecare se va comporta diferit . PRINCIPALELE ACTIVITATI ALE APPLET-URILOR In locul metodei main() , applet-urile poseda metode care sunt apelate la aparitia anumitor evenimente pe parcursul rularii applet-ului . Un exemplu de astfel de metoda este paint() care este apelata ori de cate ori fereastra applet-ului trebuie afisata sau redesenata . In mod prestabilit aceste metode sunt nule – ele nu fac practic nimic . De exemplu metoda paint() , mostenita de la clasa Applet , este o metoda nula . Pentru a afisa ceva in fereastra applet-ului metoda paint() trebuie suprascrisa cu un comportament care sa permita afisarea de text , grafica sau alte elemente . a.

Initializarea

Initializarea apare o data cu incarcarea applet-ului . Initializarea poate consta in crearea obiectelor de care are nevoie applet-ul , setarea starii initiale , incarcarea unor imagini sau fonturi sau setarea uno parametri . Pentru a defini codul de initializare al unui applet trebuie suprascrisa metoda ini() : public void init() { // codul sursa } b.

Pornirea

Un applet este pornit dupa initializare . Pornirea poate aparea si daca applet-ul a fost anterior oprit . De exemplu un applet este oprit daca utilizatorul browser-ului urmeaza o legatura catre o alta pagina si este pornit din nou atunci cand utilizatorul revine in pagina care contine applet-ul . Pornirea poate aparea de mai multe ori pe parcursul ciclului de viata al unui applet , insa initializarea apare doar o data . Pentru a defini codul de pornire al unui applet trebuie suprascrisa metoda start() : public void start() { // codul sursa

3

} Codul metodei start() poate contine trimiterea anumitor mesaje obiectelor externe sau specificarea intrun anumit mod a faptului ca applet-ul isi incepe rularea . c.

Oprirea

Oprirea si pornirea merg una alaturi de cealalta . Oprirea apare atunci cand utilizatorul paraseste pagina care contine applet-ul curent sau atunci cand applet-ul se opreste singur apeland metoda stop() . In mod prestabilit orice fire de executie ( threads ) pe care applet-ul le-a lansat isi vor continua executia si dupa ce utilizatorul paraseste pagina . Prin suprascriere metodei stop() putem suspenda executia acestor fire si le putem reporni daca applet-ul este vizualizat din nou . In continuare se prezinta o forma a metodei stop() : public void stop() { // codul sursa } d.

Distrugerea

Metoda destroy() permite applet-ului sa-si faca “curatenie” chiar inainte de a se elibera memoria alocata sau de a parasi browser-ul . Putem folosi aceasta metoda pentru a distruge orice fire de executie sau pentru a elibera orice alte obiecte care ruleaza . De obicei nu se suprascrie metoda destroy() decat daca exista anumite resurse care trebuie neaparat eliberate , cum ar fi fire de executie create de applet . Pentru a defini codul de distrugere al unui applet trebuie suprescrisa metoda destroy() : public void destroy() { // codul sursa } In cursurile anterioare a aparut un element inrudit cu destroy() : metoda finalize() . Diferenta intre aceste doua metode consta in faptul ca metoda destroy() se aplica doar applet-urilor iar finalize() este o metoda generica , ce permite unui obiect de orice tip sa-si elibereze resursele . Java poseda un recuperator automat al resurselor utilizate ( garbage collector ) , care administreaza memoria in locul nostru . Acesta recupereaza memoria ocupata de resurse dupa ce programul nu le mai foloseste , asa ca , in mod normal , nu trebuie sa folosim decat foarte rar metode ca destroy() sau finalize() . e.

Desenare

Desenarea este modul prin care un applet afiseaza ceva pe ecran : text , linii , imagini , etc. Desenarea poate aparea de foarte multe ori pe parcursul ciclului de viata al unui applet : o data dupa initializarea applet-ului , alta data atunci cand fereastra browser-ului este adusa in prim plan , alta data atunci cand fereastra browser-ului este mutata si asa mai departe . Pentru a se putea afisa ceva metoda paint() , din subclasa noastra Applet , trebuie suprascrisa . Metoda paint() arata in felul urmator : public void paint (Graphics g) { // codul sursa } Trebuie sa observam ca , spre deosebire de celelalte metode descrise anterior , metoda paint() preia un argument : o instanta a clasei Graphics . Acest obiect este creat si transmis metodei paint() de catre browser , deci nu trebuie sa ne facem probleme legate de definirea sa . Totusi , nu trebuie sa uitam sa importam clasa Graphics din pachetul java.awt in codul applet-ului nostru : import java.awt.Graphics; REALIZAREA UNUI APPLET

4

In cursul 3 s-a creat un applet Java denumit “Palindrom.java” cu scopul de a detalia conceptul de mostenire . Acum revenim la acelasi exemplu privindu-l acum doar ca applet : 1: import java.awt.Graphics; 2: import java.awt.Color; 3: import java.awt.Font; 4: 5: public class Palindrom extends java.applet.Applet { 6: Font f=new Font("TimesRoman",Font.BOLD,36); 7: 8: public void paint(Graphics monitor) { 9: monitor.setFont(f); 10: monitor.setColor(Color.red); 11: monitor.drawString("Go hang a salami , I'm a lasagna hog",5,40); 12: } 13: } Acest applet suprascrie metoda paint() . Deoarece applet-ul afiseaza doar cateva cuvinte pe ecran nu este nevoie de nici o initializare . Astfel nu este nevoie de metodele start() , stop() sau init() . Metoda paint() este locul unde se face toata treaba . Obiectul Graphics transmis metodei paint() pastreaza starea sistemului grafic , prin care se cunosc atributele curente ale suprafetei de desenare . Starea mai contine si detalii privind fontul curent sau culoarea folosita pentru operatiile de desenare . Liniile 9 si 10 definesc fontul si culoarea folosite pentru operatiile grafice . Obiectul Font este pastrat in variabila de instanta f iar obiectul reprezentand culoarea rosie este memorat in variabila red a clasei Color . Linia 11 foloseste fontul si culoarea curente pentru a desena sirul “Go hang a salami , I'm a lasagna hog" in pozitia 5 , 40 . Reamintesc ca pozitia 0 pentru x si y este punctul din stanga – sus al suprafetei de desenare a applet-ului , cu valoarea y crescand in jos asa incat valoarea 40 deplaseaza textul in jos . Daca implementam in clasa metodele corecte pentru applet – init() , start() , stop() , sau paint() – atunci applet-ul nostru va functiona corect fara a avea nevoie de un punct de start explicit . INSERAREA UNUI APPLET INTR-O PAGINA WEB Dupa ce am creat clasa sau clasele care compun applet-ul si le compilam in fisiere de tip class trebuie sa cream o pagina web in care sa introducem applet-ul . Applet-urile se insereaza intr-o pagina folosind eticheta HTML , o comanda care functioneaza asemanator altor elemente HTML . Exista de asemenea diferite utilitare pentru dezvoltarea de pagini web – ca Microsoft FrontPage sau Macromedia Dreamweaver – care pot fi folosite pentru a insera applet-uri in paginile noastre web fara a folosi explicit cod HTML . Scopul tag-ului este de a pozitiona applet-ul nostru in pagina web si de a controla modul cum arata acesta in relatie cu celelalte parti ale paginii . Browser-ele compatibile Java folosesc informatia continuta de aceasta eticheta pentru a gasi si executa fisierele compilate cu clasele applet-ului . Eticheta este de fapt o extensie speciala a limbajului HTML , care permite includerea appleturilor Java in paginile web ; eticheta este suportata de toate browser-ele compatibile Java . Mai jos avem codul sursa HTML pentru o pagina in care am inserat applet-ul Palindrom :

5

Pagina cu applet

Palindromul prezentat este :
Nu aveti browser compatibil Java Tag-ul de mai sus contine trei atribute esentiale : -

code - specifica numele clasei principale a applet-ului width - specifica latimea ferestrei applet-ului in pagina web height - specifica inaltimea ferestrei applet-ului in pagina web

Fisierul care contine clasa indicata de atributul CODE trebuie sa se afle in acelasi director ca pagina web care contine applet-ul , cu exceptia cazurilor cand folosim atributul CODEBASE pentru a specifica un alt director . WIDTH si HEIGHT sunt atribute necesare deoarece browser-ul trebuie sa stie cat spatiu sa aloce applet-ul in pagina . Este usor sa desenam intr-o zona exterioara ferestrei applet-ului asa ca trebuie sa ne asiguram ca am prevazut o fereastra suficient de mare . Intre etichetele si pot fi incluse si alte elemente de pagina web , cum ar fi text sau imagini . Acestea sunt afisate in pagina web doar de browser-ele care nu sunt compatibile Java ; este in general bine sa le includem deoarece utilizatorii sunt astfel anuntati ca nu pot vedea un applet pentru ca browser-ul lor nu este pus la curent . Daca nu specificam nimic intre aceste doua etichete browser-ele incompatibile Java nu vor afisa nimic in locul applet-ului . In exemplul de mai sus cei care nu au browser compatibil Java vor vedea textul : “Nu aveti browser compatibil Java” in locul applet-ului . Cele trei atribute ale tag-ului prezentate mai sus sunt cele de baza ; totusi , eticheta contine si alte atribute , care pot ajuta la integrarea ,mai eficienta a applet-ului in structura generala a paginii web : a.

atributul ALIGN

Acest atribut defineste modul cum va fi aliniat applet-ul in pagina web , relativ la celelalte elemente ale paginii ; atributul poate lua urmatoarele valori : -

-

left - aliniaza applet-ul la stanga textului care urmeaza in pagina dupa applet right - aliniaza applet-ul la dreapta textului care urmeaza in pagina dupa applet texttop - aliniaza partea superioara a applet-ului cu partea superioara a celui mai inalt text de pe linie top - aliniaza applet-ul cu cel mai de sus element prezent pe linie ( un alt applet , o imagine sau un text ) absmiddle - aliniaza mijlocul applet-ului cu mijlocul celui mai mare element de pe linie middle - aliniaza mijlocul applet-ului cu mijlocul liniei de baza a textului baseline - aliniaza partea inferioara a applet-ului cu linia de baza a textului bottom - acelasi lucru ca si baseline absbottom - aliniaza partea inferioara a applet-ului cu cel mai de jos element de pe linie

Pentru a finaliza formatarea specifica prin atributul ALIGN , putem folosi eticheta de terminare de rand
, impreuna cu atributul CLEAR , acesta din urma putand lua trei valori : -

left - continua afisarea restului paginii web la urmatoarea margine libera din stanga right - continua afisarea restului paginii web la urmatoarea margine libera din dreapta

6

-

all - continua afisarea restului paginii web la urmatoarea margine libera din stanga si din dreapta

b.

atributele HSPACE SI VSPACE

Atributele HSPACE si VSPACE sunt folosite pentru a determina spatiul , in numar de pixeli , intre applet si textul inconjurator . HSPACE controleaza spatiul orizontal in stanga si in dreapta applet-ului iar VSPACE controleaza spatiul vertical existent deasupra si dedesuptul applet-ului . c.

CODE SI CODEBASE

Aceste doua atribute sunt folosite pentru a indica unde pot fi gasite fisierele cu clasa principala a applet-ului si alte fisiere necesare rularii acestuia . Aceste atribute sunt folosite de un browser Java in momentul in care incearca sa ruleze applet-ul . CODE indica numele fisierului care contine clasa principala a applet-ului . Cand CODE este folosit fara atributul optional CODEBASE fisierul care contine clasa va fi cautat in acelasi loc in care se afla pagina web care contine applet-ul . In cadrul atributului CODE trebuie specificata si extensia .class . Atributul CODEBASE se foloseste pentru a indica browser-ului sa caute applet-ul si alte fisiere necesare rularii acestuia intr-un alt director . CODEBASE indica un alt director sau chiar un alt site de unde urmeaza a se incarca clasele : Trebuie mentionat ca eticheta este folosita special pentru a insera programe Java in paginile web . In prezent exista si alte tipuri de programe care ruleaza interactiv intr-o pagina . Pentru a trata toate aceste tipuri de programe fara a fi nevoie de cate o eticheta pentru fiecare explicit , specificatiile HTML au introdus si eticheta . Aceasta eticheta este folosita pentru toate obiectele – programe interactive sau alte elemente externe – care pot fi prezente drept parte a unei pagini web . Eticheta are urmatoarea forma : Trecerea de la eticheta la presupune doar cateva modificari : -

atributul code trebuie inlocuit cu classid ; in plus , inainte de numele clasei applet-ului trebuie specificat “java:” . eticheta se inlocuieste cu

In rest atributele raman aceleasi . TRANSFERUL DE PARAMETRI CATRE APPLET-URI In aplicatiile Java putem transmite parametri metodei main() specificand argumente in linia de comanda . Apoi putem prelucra acesti parametri in corpul clasei , aplicatia comportandu-se corespunzator argumentelor primite . In schimb applet-urile nu poseda o linie de comanda . Applet-urile pot obtine diferite date de intrare din fisierul HTML care contine eticheta sau , folosind parametri . Pentru a defini si trata parametri intr-un applet avem nevoie de doua lucruri :

7

-

o eticheta de parametru in fisierul HTML codul din cadrul applet-ului care sa trateze acesti parametri

Parametrii unui applet sunt compusi din doua parti : un nume , care este ales de dumneavoastra , si o valoare , care determina valoarea respectivului parametru . De exemplu , putem indica intr-un applet culoarea unui text folosind un parametru cu numele culoare si valoarea rosu . Putem determina viteza de derulare a unei animatii folosind un parametru cu numele viteza si o anumita valoare . In fisierul HTML care contine applet-ul , fiecare parametru este indicat folosind eticheta <param> , care contine doua atribute , pentru nume si valoare , denumite NAME si VALUE . Eticheta <param> se introduce intre etichetele de inceput si de sfarsit de container : <param name=font value=TimesRoman> <param name=dim value=24> Aici este un applet Java Exemplul de mai sus defineste doi parametri pentru applet-ul “Clasa” : unul , denumit font , care are valoarea TimesRoman si celalalt , denumit dim , care are valoarea 24 . Folosirea etichetei <param> este aceeasi pentru applet-urile care folosesc tag-ul object> in loc de . Parametri sunt transmisi applet-ului la incarcarea acestuia . In metoda init() a applet-ului putem obtine acesti parametri folosind metoda getParameter() . Aceasta preia ca argument un sir ce reprezinta numele parametrului cautat si intoarce un sir care contine valoarea respectivului parametru . Pentru a obtine valoarea parametrului font din fisierul HTML de mai sus , metoda init() ar trebui sa contina : String numeFont = getParameter(“font”); Numele parametrilor specificati in eticheta <param> si numele parametrilor metodei getParameter() trebuie sa fie identice , inclusiv majusculele sau minusculele folosite . Cu alte cuvinte , <param name=popescu”> este diferit de <param name=Popescu> . Retineti ca daca parametrul asteptat nu a fost specificat in fisierul HTML , metoda getParameter() intoarce valoarea null . De obicei , ar trebui testata valoarea null a parametrului si sa oferim o valoare implicita . ca in exemplul de mai jos : if (numeFont==null ) numeFont=”Courier”; Mai trebuie reamintit din nou ca metoda getParameter() returneaza un sir ; daca dorim ca parametrul sa fie de alt tip de obiect sau data trebuie sa il convertim explicit . Pentru a trata parametrul dim si a-l atribui unei variabile intregi , numita dimensiunea , am putea folosi urmatorul cod : int dimensiunea ; String s = getParameter(“dim”); if (s==null) dimensiunea =12; else dimensiunea = Integer.parseInt(s); In continuare sa vedem un exemplu de applet care foloseste aceasta tehnica . Vom modifica applet-ul Palindrom pentru a afisa alte texte . Numele este transmis applet-ului printr-un parametru HTML . Proiectul va primi numele PalindromNou . Primul lucru pe care trebuie sa il adaugam acestei clase este o variabila in care va fi pastrata valoarea parametrului palindrom . Deoarece vom folosi acest nume in cadrul applet-ului , vom adauga o variabila de instanta dupa numele variabilei pentru font :

8

String palindrom; Pentru a seta valoarea numelui , trebuie sa obtinem parametrul . Cel mai bun loc de obtinere a parametrilor applet-ului este in cadrul metodei init() . Metoda init() este definita asemanator cu paint() – publica , fara argumente si fara tip de retur . De asemenea trebuie sa ne asiguram ca testam valoarea null a parametrului . Daca palindromul nu este specificat se va afisa implicit textul “Dennis and Edna sinned” , ca in exemplul de mai jos : public void init() { palindrom = getParameter(“palindrom”); if (palindrom==null) palindrom=”Dennis and Edna sinned”; } O data adaugata aceasta metoda tot ce na mai ramane este sa modificam metoda paint() . Metoda originala drawString() arata astfel : ecran.drawString(“Go hang a salami , I’m a lasagna hog.”,5,40); Pentru a desena noul sir pe care il stocam in variabila de instanta palindrom , tot ceea ce trebuie sa facem este sa inlocuim variabila cu sirul : ecran.drawString(palindrom,5,40); In continuare prezentam listingul complet al aplicatiei applet PalindromNou : 1: import java.awt.Graphics; 2: import java.awt.Color; 3: import java.awt.Font; 4: 5: public class PalindromNou extends java.applet.Applet { 6: Font f=new Font("TimesRoman",Font.BOLD,36); 7: String palindrom; 8: public void paint(Graphics ecran) { 9: ecran.setFont(f); 10: ecran.setColor(Color.red); 11: ecran.drawString(palindrom,5,40); 12: } 13: public void init() { 14. palindrom = getParameter(“palindrom”); 15. if (palindrom==null) palindrom=”Dennis and Edna sinned”; 16: } 17: } In continuare vom crea si fisierul HTML care va contine acest applet : Pagina noua cu palindrom

<param name=palindrom value=”No sir prefer prison”> Browser-ul nu suporta Java

9

Daca nu este specificata nici o valoare pentru parametrul palindrom textul implicit este “Dennis and Edna sinned” . AMPLASAREA APPLET-URILOR IN WEB Dupa ce am obtinut un applet care functioneaza corespunzator putem face applet-ul disponibil in World Wide Web . Applet-urile Java sunt introduse pe un server web in aceasi mod ca si fisierele HTML , imaginile sau alte fisiere multimedia . Applet-ul trebuie stocat intr-un director accesibil serverului web – de cele mai multe ori in acelasi director care contine si pagina web ce inglobeaza applet-ul . Serverul web trebuie configurat pentru a oferi applet-uri Java browser-elor ce suporta acest limbaj . Exista cateva fisiere ce trebuie incarcate pe un server web : -

pagina web ce contine applet-ul toate fisierele .class folosite de applet si care nu fac parte din biblioteca de clase standard a Java

In general daca stim cum sa publicam o pagina web , fisiere cu imagini si alte elemente multimedia vom putea sa publicam fara probleme si applet-uri Java pe site-ul nostru . ARHIVE JAVA Modalitatea standard de amplasare a unui applet Java intr-o pagina web este de a folosi etichetele si pentru a indica numele clasei primare a applet-ului . Se foloseste apoi un browser compatibil Java care transfera si executa applet-ul . Orice alte clase sau fisiere folosite de applet sunt transferate de pe serverul web . Problema cu rularea in acest fel a applet-urilor este ca fiecare fisier de care are nevoie applet-ul , fie acesta o clasa externa , un fisier imagine , audio , text sau orice altceva – necesita o conexiune separata de la browser la serverul web care contine fisierul . Deoarece intervalul de timp necesar pentru a stabili conxiunile acestea nu este neglijabil acest lucru poate mari timpul total pentru transferul applet-ului si fisierelor sale pana la durate inacceptabile . Solutia acestei probleme este crearea unei arhive Java , adica un fisier JAR . O arhiva Java reprezinta o colectie de clase Java si alte fisiere , impachetate intr-un singur fisier . Folosind o arhiva Java browserului ii este suficienta o singura conexiune la serverul web . Reducand numarul de fisiere transferate de pe server appelt-ul poate fi incarcat si rulat mai rapid . Arhivele Java pot fi si comprimate , scazandu-le astfel dimensiunea si micsorandu-se timpul de transfer – dar in schimb va dura ceva mai mult din partea browser-ului decomprimarea inainte de rulare . Pentru a crea arhive JAR putem folosi utilitarul JAVA denumit jar , care poate impacheta sau despacheta fisierele in/din arhive Java . Urmatoarea comanda impacheteaza toate clasele si imaginile .gif dintr-un director intr-o singura arhiva Java , denumita Animat.jar : jar cf Animat.jar *.class *.gif Argumentul cf specifica doua optiuni in linie de comanda care sunt folosite de programul jar . Optiunea c indica faptul ca arhiva Java trebuie creata iar f arata ca unul dintre urmatoarele argumente din linia de comanda reprezinta numele arhivei .

10

Putem , de asemenea , adauga intr-o arhiva Java alte fisiere folosind comanda : jar cf Smiley.jar ShowSmiley.class ShowSmiley.html spinhead.gif Ruland utilitarul jar fara nici un argument vom obtine list a de optiuni care pot fi folosite . Dupa ce am creat arhiva Java , in eticheta se foloseste atributul ARCHIVE pentru a indica locul unde se gaseste arhiva . Putem folosi arhiva Java in felul urmator : Aceasta eticheta specifica faptul ca arhiva numita Smiley.jar contine fisierele folosite de applet . Browser-ele si utilitarele de navigare care suporta fisiere JAR stiu sa caute in interiorul arhivelor fisierele necesare pe timpul rularii applet-ului . OBS : cu toate ca o arhiva Java poate contine fisiere clasa atributul ARCHIVE nu presupune eliminarea atributului CODE . Pentru a o incarca browser-ul trebuie totusi sa stie numele clasei principale a applet-ului . ALTE FORMATE DE ARHIVARE Versiunile curente ale celor mai raspandite browser-e – ale firmelor Microsoft si Netscape – suporta pe langa arhive JAR si formate recunoscute ca ZIP sau CAB . Exemplul de mai jos foloseste o arhiva ZIP : Microsoft a introdus un utilitar CABarc care realizeaza arhive in formatul CAB . Pentru a specifica aceasta arhiva in codul HTML se foloseste eticheta <param> impreuna cu un parametru numit cabbase , valoarea acestuia fiind numele fisierului cab . Iata un exemplu : <param name=cabbase value=AppletulMeu.cab> Ca si atributul ARCHIVE , parametrul cabbase va fi ignorat de browser-ele web care nu suporta folosirea sa .

11

More Documents from "Valentin"