Universitatea Constantin Brâncuşi din Târgu-Jiu. Aplicații JAVA. Lect.dr. Adrian Runceanu

Similar documents
Curs 10 Applet-uri. Ce este un applet? Crearea unui applet. Curs 10

Appleturi. Programare Orientată pe Obiecte

Laborator 8 Java Crearea claselor de obiecte. Variabilele (campurile) clasei de obiecte

Fişiere in C++ Un fişier este o colecţie de date indicat printr-un nume şi o extensie. Numele este desparţit de extensie prin punct.

Utilizarea formularelor in HTML

Laborator 5 Instrucțiunile repetitive

Ingineria Sistemelor de Programare

Curs practic de Java

Error! Bookmark not defined.

Tehnici avansate de programare

1. Să se determine de câte ori apare cifra c în scrierea în baza p a numărului n.

Alocarea memoriei în C sub Linux

Introducere in Maven. Information Type: Working Standard, Disclosure Range:, Information Owner: mihai.hulea, NTT DATA Romania

Ingineria Sistemelor de Programare. UML Diagrama Cazurilor de Utilizare 2016

CONFIGURAREA UNUI SERVER IRC IN LINUX. Bica Bogdan *

Aplicatii JAVA. JAVA Interfata grafica AWT (partea II) # 5. Adrian Runceanu

Proiectarea Rețelelor 32. Controlul modelelor de trafic in retea prin alterarea atributelor BGP

Operatori. Comentarii. Curs 1

Laborator 2 - Introducere in limbajul Java.Pachete.Interfete.Tratarea exceptiilor. Pachete

Rezolvare fişă de laborator Java Iniţiere în limbajul Java

Aplicatii JAVA. JAVA Programare în rețea # 8. Adrian Runceanu

Probleme consultații 20 ianuarie 2018

Aplicații JAVA. Lect.dr. Adrian Runceanu

PNI SmartCAM. versiune Android. - manual de utilizare-

Îmbunătăţiri aduse în limbajul C++ facilităţilor standard ale limbajului C (cele care nu ţin de conceptele programării orientate obiect).

Fisiere text in Java.

Laborator 3 Java. Introducere in programarea vizuala

Aplicatii JAVA. JAVA Lucrul cu baze de date în Java # 10. Adrian Runceanu

Administrarea sistemelor Linux

The Reuse of the Components on the Java 2 Enterprise Edition Platform

Lucrarea de laborator nr. 4.NET Remoting 1

Laboratorul 6 Mediul de dezvoltare Eclipse

Birotică Profesională. Cursul 12

Proiectarea bazelor de date. PL/SQL Proceduri în PL/SQL(partea II-a) # 9. Adrian Runceanu

Tehnologii Java. Curs - Cristian Frăsinaru. Facultatea de Informatică Universitatea Al. I. Cuza Iaşi.

Nivelul inferior de prelucrare a fişierelor

Şiruri de caractere System.String string Verbatim verbatim verbatim Exemplu

Quartz. ArcGIS Runtime SDK for Android

C6 c) / /21

Aplicatii JAVA. JAVA Excepții în Java # 7. Adrian Runceanu

Gestionarea memoriei dinamice. Tablouri şi şiruri de caractere. Conversii de date. Operaţii de intrare / ieşire

SISTEME DE OPERARE (SO) CURS 10. Asist. Univ. Dr. Mihai Stancu. Virtualizare

Capitolul 8 Funcţii în limbajul C

1. Funcţii referitoare la o singură înregistrare (single-row functions)

DEZVOLTAREA APLICATIILOR WEB CURS 1. Lect. Univ. Dr. Mihai Stancu

Introducere in AutoCAD 3D

Laborator 4 Java Colectii

Module 5 The Applet Class, Swings. OOC 4 th Sem, B Div Prof. Mouna M. Naravani

Aplicații JAVA. Lect.dr. Adrian Runceanu

Introducere in applet-uri

Dynamic binding vs static binding. Programare Orientată pe Obiecte

-modificatorul unei interfeţe este public sau abstract (implicit)

informatii despre exceptia respectiva starea programului în momentul producerii acelei exceptii

Aplicații JAVA. Lect.dr. Adrian Runceanu

SIMPLE APPLET PROGRAM

JavaScript - Intorducere. Și nu numai...

Lenuta Alboaie Reţele de calculatoare

Programarea Orientată pe Obiecte Teorie Subiecte pentru proba scrisă a examenului de licență

Capitolul 4. Fisiere de date si Tablespace. F. Radulescu. Curs: Utilizarea bazelor de date, anul IV C5.

POO. Observer Pattern (prezentare bazata pe GoF)

Tehnici avansate de programare

GDB. Rulare gdb. Comenzi de bază GDB GDB. GDB poate fi folosit în două moduri pentru a depana programul:

Laborator 10. SGBD-ul MySQL (partea I)

UTILIZAREA SISTEMELOR DE OPERARE - LABORATORUL 2. Comparatie cu comenzile de DOS, manualul unei comenzi, lucrul cu directoare

Curs 8 Fire de executie

Lucrarea 5 Fire de Execuţie în Java. Mecanisme de Sincronizare.

Proprietati CSS pentru margini - BORDER

Fisa de lucru: Studiul componentelor calculatorului

COLEGIUL TEHNIC VICTOR UNGUREANU CÂMPIA TURZII INSTALAREA SI CONFIGURAREA UNUI SERVER DNS PE WINDOWS SERVER 2003

Capitolul 4. Fisiere de date si Tablespace. F. Radulescu. Curs: Utilizarea bazelor de date, anul IV C5.

Google in Cloud - Aplicatii -

Laborator 5 Sisteme Lindenmayer. Temă

Capitolul 1. Arhitectura Oracle. F. Radulescu. Curs: Utilizarea bazelor de date, anul IV C5.

Fișiere de comenzi (BAT) sub DOS

Programare Orientată pe Obiecte în limbajul Java

Dezvoltarea aplicaţiilor WEB

AWT Introducere, concepte... 2 Componente... 2 Evenimente... 7 Modelul vechi de evenimente Java... 7 Identificarea țintei...

Curs 5. Programare Paralela si Distribuita. Forme de sincronizare - Java. Curs 5 - PPD 1

8. Tablouri. 8.1 Tipuri de dată simple şi tipuri de dată structurate

Variabile predefinite

la Microsoft Office Communicator pentru ca modificarea selecţiei dispozitivului telefonic să se actualizeze.

PROGRAMARE ORIENTATĂ PE OBIECTE

Contents 8-1. Copyright (c) N. Afshartous

Tipuri de date structurate

Bibliografie. * * *, Java Development Kit ndex.html

AppOBP > PrOBPT > class Timp import java.text.decimalformat;

Elemente de programare in retea

Programare avansată Introducere

Operații de intrare/ieșire în C++

Design activities. Session III. 1. Topology. - Selecting and placing devices - Interconnecting devices

Laborator 3 Aplicatii Java

Vulnerabilitati Web si securizarea acestora v1.0

7. TEHNOLOGIA JAVA SERVLET

Proiectarea Rețelelor 1. Componentele hardware ale unui sistem de calcul

Laborator 9. Programare orientată pe obiecte Laborator 9. 1) Să se realizeze o aplicaţie care să rezolve ecuaţii de gradul al doilea.

Module 5 Applets About Applets Hierarchy of Applet Life Cycle of an Applet

Miniservere. Servlet-urile relueaza in Java Virtual Machine pe server:

Laborator 1 Java. Citirea datelor de la tastatura si afisarea datelor pe ecran

Manual utilizare PNI SmartCAM (Versiune ios)

OBJECT ORIENTED PROGRAMMING. Course 8 Loredana STANCIU Room B613

Transcription:

Universitatea Constantin Brâncuşi din Târgu-Jiu Aplicații JAVA Lect.dr. Adrian Runceanu

Curs 4 Applet-uri în Java 10.03.2016 Curs - Aplicatii Java 2

Applet-uri în Java 1. Ce este un applet? 2. Crearea unui applet simplu 3. Ciclul de viata al unui applet 4. Interfata grafica cu utilizatorul 5. Definirea si folosirea parametrilor 6. Tag-ul <APPLET> 7. Alte metode oferite de clasa Applet 8. Probleme de securitate 10.03.2016 Curs - Aplicatii Java 3

1. Ce este un applet? Definitie Un applet reprezinta o suprafata de afisare (container) ce poate fi inclusa într-o pagina Web si gestionata printr-un program Java. Un astfel de program se mai numeste miniaplicatie. 10.03.2016 Curs - Aplicatii Java 4

1. Ce este un applet? Codul unui applet poate fi format din una sau mai multe clase. Una dintre acestea este principala si extinde clasa Applet, fiind clasa ce trebuie specificata în documentul HTML ce descrie pagina de Web în care dorim sa includem applet-ul. Diferenta fundamentala dintre un applet si o aplicatie consta în faptul ca, un applet nu poate fi executat independent, ci va fi executat de browser-ul în care este încarcata pagina Web ce contine appletul respectiv. 10.03.2016 Curs - Aplicatii Java 5

1. Ce este un applet? O aplicatie independenta este executata prin apelul interpretorului Java, având ca parametru numele clasei principale a aplicatiei, clasa principala fiind cea care contine metoda main. Ciclul de viata al unui applet este complet diferit, fiind dictat de evenimentele generate de catre browser la vizualizarea documentului HTML ce contine applet-ul. Pachetul care ofera suport pentru creearea de applet-uri este java.applet. 10.03.2016 Curs - Aplicatii Java 6

Applet-uri în Java 1. Ce este un applet? 2. Crearea unui applet simplu 3. Ciclul de viata al unui applet 4. Interfata grafica cu utilizatorul 5. Definirea si folosirea parametrilor 6. Tag-ul <APPLET> 7. Alte metode oferite de clasa Applet 8. Probleme de securitate 10.03.2016 Curs - Aplicatii Java 7

2. Crearea unui applet Orice applet este implementat prin crearea unei subclase a clasei Applet. Ierarhia claselor din care deriva Applet este prezentata în figura de mai jos: Fiind derivata din clasa Container, clasa Applet descrie de fapt suprafete de afisare, asemenea claselor Frame sau Panel. 10.03.2016 Curs - Aplicatii Java 8

2. Crearea unui applet Un exemplu de applet simplu: import java.applet.applet; import java.awt.*; public class AppletSimplu extends Applet { public void paint(graphics g) { g.setfont(new Font("Arial", Font.BOLD, 16)); g.drawstring("hello", 0, 30); } } Se va salva clasa de mai sus într-un fisier AppletSimplu.java. 10.03.2016 Curs - Aplicatii Java 9

2. Crearea unui applet Compilarea Compilarea se face la fel ca si la aplicatiile independente, apelând compilatorul javac pentru clasa principal a applet-ului (cea care extinde Applet). javac AppletSimplu.java In cazul în care compilarea a reusit va fi generat fisierul AppletSimplu.class. 10.03.2016 Curs - Aplicatii Java 10

2. Crearea unui applet Executia (vizualizarea) Pentru a vizualiza acest applet trebuie sa cream un document HTML, de exemplu demo.html, în care sa specificam cel putin urmatoarele informatii: clasa ce contine codul applet-ului latimea si înaltimea suprafetei alocate pe pagina Web 10.03.2016 Curs - Aplicatii Java 11

2. Crearea unui applet // demo.html <HTML> <HEAD> <TITLE> Un applet simplu </TITLE> </HEAD> <APPLET CODE="AppletSimplu.class" WIDTH=100 HEIGHT=50></APPLET> </HTML> Vizualizarea acestui document se poate face cu orice browser (Internet Explorer, Chrome, Firefox, Safari, Opera etc), sau cu utilitarul appletviewer ce vine în pachetul JDK. 10.03.2016 Curs - Aplicatii Java 12

Applet-uri în Java 1. Ce este un applet? 2. Crearea unui applet simplu 3. Ciclul de viata al unui applet 4. Interfata grafica cu utilizatorul 5. Definirea si folosirea parametrilor 6. Tag-ul <APPLET> 7. Alte metode oferite de clasa Applet 8. Probleme de securitate 10.03.2016 Curs - Aplicatii Java 13

3. Ciclul de viata al unui applet copyright@www.adrian.runceanu.ro Executia unui applet începe în momentul în care un browser afiseaza o pagina Web în care este inclus applet-ul respectiv si poate trece prin mai multe etape. Fiecare etapa este strâns legata de un eveniment generat de catre browser si determina apelarea unei metode specifice din clasa ce implementeaza applet-ul. 10.03.2016 Curs - Aplicatii Java 14

3. Ciclul de viata al unui applet copyright@www.adrian.runceanu.ro 1. Incarcarea in memorie Este creata o instanta a clasei principale a applet-ului si încarcata în memorie. 2. Initializarea Este apelata metoda init ce permite initializarea diverselor variabile, citirea unor parametri de intrare, etc. 3. Pornirea Este apelata metoda start 10.03.2016 Curs - Aplicatii Java 15

3. Ciclul de viata al unui applet 4. Executia propriu-zisa copyright@www.adrian.runceanu.ro Consta în interactiunea dintre utilizator si componentele afisate pe suprafata applet-ului sau în executarea unui anumit cod într-un fir de executie. In unele situatii întreaga executie a applet-ului se consuma la etapele de initializare si pornire. 10.03.2016 Curs - Aplicatii Java 16

3. Ciclul de viata al unui applet 5. Oprirea temporara copyright@www.adrian.runceanu.ro In cazul în care utilizatorul paraseste pagina Web în care ruleaza applet-ul este apelata metoda stop a acestuia, dându-i astfel posibilitatea sa se opreasca temporar cât timp nu este vizibil, pentru a nu consuma inutil din timpul procesorului. Acelasi lucru se întâmpla daca fereastra browserului este minimizata. In momentul când pagina Web ce contine applet-ul devine din nou activa, va fi reapelata metoda start. 10.03.2016 Curs - Aplicatii Java 17

3. Ciclul de viata al unui applet copyright@www.adrian.runceanu.ro 6. Oprirea definitiva La închiderea tuturor instantelor browserului folosit pentru vizualizare, applet-ul va fi eliminat din memorie si va fi apelata metoda destroy a acestuia, pentru a-i permite sa elibereze resursele detinute. Apelul metodei destroy este întotdeauna precedat de apelul metodei stop. 10.03.2016 Curs - Aplicatii Java 18

3. Ciclul de viata al unui applet copyright@www.adrian.runceanu.ro Metodele specifice applet-urilor Asadar, exista metode specifice applet-ului ce sunt apelate automat la diverse evenimente generate de catre browser: 10.03.2016 Curs - Aplicatii Java 19

3. Ciclul de viata al unui applet copyright@www.adrian.runceanu.ro Structura generala a unui applet: import java.applet.applet; import java.awt.*; import java.awt.event.*; public class StructuraApplet extends Applet { public void init() { } public void start() { } public void stop() { } public void destroy() { } public void paint(graphics g) { } } 10.03.2016 Curs - Aplicatii Java 20

Applet-uri în Java 1. Ce este un applet? 2. Crearea unui applet simplu 3. Ciclul de viata al unui applet 4. Interfata grafica cu utilizatorul 5. Definirea si folosirea parametrilor 6. Tag-ul <APPLET> 7. Alte metode oferite de clasa Applet 8. Probleme de securitate 10.03.2016 Curs - Aplicatii Java 21

4. Interfata grafica cu utilizatorul copyright@www.adrian.runceanu.ro Dupa cum am vazut, clasa Applet este o extensie a superclasei Container, ceea ce înseamna ca applet-urile sunt, înainte de toate, suprafete de afisare. Plasarea componentelor, gestionarea pozitionarii lor si tratarea evenimentelor generate se realizeaza la fel ca si în cazul aplicatiilor. Uzual, adaugarea componentelor pe suprafata appletului precum si stabilirea obiectelor responsabile cu tratarea evenimentelor generate sunt operatiuni ce vor fi realizate în metoda init. Gestionarul de pozitionare implicit este FlowLayout, însa acesta poate fi schimbat prin metoda setlayout. 10.03.2016 Curs - Aplicatii Java 22

4. Interfata grafica cu utilizatorul copyright@www.adrian.runceanu.ro Desenarea pe suprafata unui applet Exista o categorie întreaga de applet-uri ce nu comunica cu utilizatorul prin intermediul componentelor ci, executia lor se rezuma la diverse operatiuni de desenare executate în metoda paint. 10.03.2016 Curs - Aplicatii Java 23

Exemplu metoda paint import java.applet.*; import java.awt.*; public class DrawingLines extends Applet { // Declare two variables of type "int" (integer). int width, height; // This gets executed when the applet starts. public void init() { // Store the height and width of the applet for future reference. width = getsize().width; height = getsize().height; // Make the default background color black. setbackground( Color.black ); } 10.03.2016 Curs - Aplicatii Java 24

Exemplu metoda paint(continuare) copyright@www.adrian.runceanu.ro // This gets executed whenever the applet is asked to redraw itself. public void paint( Graphics g ) { // Set the current drawing color to green. g.setcolor( Color.green ); // Draw ten lines using a loop. // We declare a temporary variable, i, of type "int". // Note that "++i" is simply shorthand for "i=i+1" for ( int i = 0; i < 10; ++i ) { // The "drawline" routine requires 4 numbers: // the x and y coordinates of the starting point, // and the x and y coordinates of the ending point, // in that order. Note that the cartesian plane, // in this case, is upside down (as it often is // in 2D graphics programming): the origin is at the // upper left corner, the x-axis increases to the right, // and the y-axis increases downward. g.drawline( width, height, i * width / 10, 0 ); } }} 10.03.2016 Curs - Aplicatii Java 25

Applet-uri în Java 1. Ce este un applet? 2. Crearea unui applet simplu 3. Ciclul de viata al unui applet 4. Interfata grafica cu utilizatorul 5. Definirea si folosirea parametrilor 6. Tag-ul <APPLET> 7. Alte metode oferite de clasa Applet 8. Probleme de securitate 10.03.2016 Curs - Aplicatii Java 26

5. Definirea si folosirea parametrilor copyright@www.adrian.runceanu.ro In cazul în care este aleasa aceasta solutie, evenimentele tratate uzual vor fi cele generate de mouse sau tastatura. Parametrii sunt pentru applet-uri ceea ce argumentele de la linia de comanda sunt pentru aplicatiile independente. Ei permit utilizatorului sa personalizeze aspectul sau comportarea unui applet fara a-i schimba codul si recompila clasele. 10.03.2016 Curs - Aplicatii Java 27

5. Definirea si folosirea parametrilor Definirea parametrilor se face în cadrul tagului APPLET din documentul HTML ce contine applet-ul si sunt identificati prin atributul PARAM. Fiecare parametru are un nume, specificat prin NAME si o valoare, specificata prin VALUE, ca în exemplul de mai jos: <APPLET CODE="AppletSimplu.class" WIDTH=100 HEIGHT=50 <PARAM NAME=textAfisat VALUE="Salut"> <PARAM NAME=numeFont VALUE="Times New Roman"> <PARAM NAME=dimFont VALUE=20> </APPLET> Ca si în cazul argumentelor trimise aplicatiilor de la linia de comanda, tipul parametrilor este sir de caractere, indiferent daca valoarea este între ghilimele sau nu. 10.03.2016 Curs - Aplicatii Java 28

5. Definirea si folosirea parametrilor copyright@www.adrian.runceanu.ro Fiecare applet are si un set de parametri prestabiliti ale caror nume nu vor putea fi folosite pentru definirea de noi parametri folosind metoda de mai sus. Acestia apar direct în corpul tagului APPLET si definesc informatii generale despre applet. Exemple de astfel de parametri sun CODE, WIDTH sau HEIGHT. 10.03.2016 Curs - Aplicatii Java 29

5. Definirea si folosirea parametrilor Folosirea parametrilor primiti de catre un applet se face prin intermediul metodei getparameter care primeste ca argument numele unui parametru si returneaza valoarea acestuia. In cazul în care nu exista nici un parametru cu numele specificat, metoda întoarce null, caz în care programul trebuie sa atribuie o valoare implicita variabilei în care se dorea citirea respectivului parametru. Sa rescriem applet-ul considerat initial (AppletSimplu) astfel încât acesta sa afiseze textul primit ca parametru, folosind un font cu numele si dimeniunea specificate de asemenea ca parametri. 10.03.2016 Curs - Aplicatii Java 30

5. Definirea si folosirea parametrilor import java.applet.applet; import java.awt.*; public class AppletSimplu extends Applet { String text, numefont; int dimfont; public void init() { text = getparameter("textafisat"); if (text==null) text="hello"; // valoare implicita numefont = getparameter("numefont"); copyright@www.adrian.runceanu.ro public void paint(graphics g) { g.setfont(new Font(numeFont, Font.BOLD, dimfont)); g.drawstring(text, 20, 20); } } if (numefont==null) numefont="arial"; try { dimfont = Integer.parseInt(getParameter("dimFont")); } catch(numberformatexception e) { dimfont = 16; } } 10.03.2016 Curs - Aplicatii Java 31

5. Definirea si folosirea parametrilor copyright@www.adrian.runceanu.ro Orice applet poate pune la dispozitie o documentatie" referitoare la parametrii pe care îi suporta, pentru a veni în ajutorul utilizatorilor care doresc sa includa applet-ul într-o pagina Web. Aceasta se realizeaza prin supradefinirea metodei getparameterinfo, care returneaza un vector format din triplete de siruri. Fiecare element al vectorului este de fapt un vector cu trei elemente de tip String, cele trei siruri reprezentând numele parametrului, tipul sau si o descriere a sa. 10.03.2016 Curs - Aplicatii Java 32

5. Definirea si folosirea parametrilor copyright@www.adrian.runceanu.ro public String[][] getparameterinfo() { String[][] info = { // Nume Tip Descriere {"textafisat", "String", "Sirul ce va fi afisat"}, {"numefont", "String", "Numele fontului"}, {"dimfont", "int", "Dimensiunea fontului"} }; return info; } Informatiile furnizate de un applet pot fi citite din browserul folosit pentru vizualizare prin metode specifice acestuia. 10.03.2016 Curs - Aplicatii Java 33

Applet-uri în Java 1. Ce este un applet? 2. Crearea unui applet simplu 3. Ciclul de viata al unui applet 4. Interfata grafica cu utilizatorul 5. Definirea si folosirea parametrilor 6. Tag-ul <APPLET> 7. Alte metode oferite de clasa Applet 8. Probleme de securitate 10.03.2016 Curs - Aplicatii Java 34

6. Tag-ul <APPLET> copyright@www.adrian.runceanu.ro < APPLET [CODEBASE = directorapplet] CODE = clasaapplet [ALT = textalternativ] [NAME = numeinstantaapplet] WIDTH = latimeinpixeli HEIGHT = înaltimeinpixeli [ALIGN = aliniere] [VSPACE = spatiuvertical] [HSPACE = spatiuorizontal] > [< PARAM NAME = numeparametru1 VALUE = valoare1 >] [< PARAM NAME = numeparametru2 VALUE = valoare2 >]... [text HTML alternativ] </APPLET> 10.03.2016 Curs - Aplicatii Java 35

6. Tag-ul <APPLET> Atributele puse între paranteze patrate sunt optionale. CODEBASE = directorapplet Specifica URL-ul în care se gaseste clasa applet-ului. Uzual se exprima relativ la directorul documentului HTML. In cazul în care lipseste, se considera implicit URL-ul documentului. CODE = clasaapplet Numele fisierului ce contine clasa principala a appletului. Acesta va fi cautat în directorul specificat de CODEBASE. Nu poate fi absolut. 10.03.2016 Curs - Aplicatii Java 36

6. Tag-ul <APPLET> ALT = textalternativ Specifica textul ce trebuie afisat daca browserul întelege tagul APPLET dar nu poate rula applet-uri Java. NAME = numeinstantaapplet Ofera posibilitatea de a da un nume respectivei instante a applet-ului, astfel încât mai multe appleturi aflate pe aceeasi pagina sa comunice între ele folosindu-se de numele lor. 10.03.2016 Curs - Aplicatii Java 37

6. Tag-ul <APPLET> WIDTH = latimeinpixeli HEIGHT = înaltimeinpixeli Specifica latimea si înaltimea suprafetei în care va fi afisat applet-ul. ALIGN = aliniere Semnifica modalitatea de aliniere a applet-ului în pagina Web. Acest atribut poate primi una din urmatoarele valori: left, right, top, texttop, middle, absmiddle, baseline, bottom, absbottom, semnificatiile lor fiind aceleasi ca si la tagul IMG. 10.03.2016 Curs - Aplicatii Java 38

6. Tag-ul <APPLET> VSPACE = spatiuvertical HSPACE = spatiuorizontal Specifica numarul de pixeli dintre applet si marginile suprafetei de afisare. < PARAM NAME = numeparametru1 VALUE = valoare1 > Tag-urile <PARAM> sunt folosite pentru specificarea parametrilor unui applet. 10.03.2016 Curs - Aplicatii Java 39

Applet-uri în Java 1. Ce este un applet? 2. Crearea unui applet simplu 3. Ciclul de viata al unui applet 4. Interfata grafica cu utilizatorul 5. Definirea si folosirea parametrilor 6. Tag-ul <APPLET> 7. Alte metode oferite de clasa Applet 8. Probleme de securitate 10.03.2016 Curs - Aplicatii Java 40

7. Alte metode oferite de clasa Applet Clasa Applet ofera metode specifice applet-urilor pentru: Punerea la dispozitie a unor informatii despre applet Similara cu metoda getparameterinfo ce oferea o "documentatie" despre parametrii pe care îi suporta un applet, exista metoda getappletinfo ce permite specificarea unor informatii legate de applet cum ar fi numele, autorul, versiunea, etc. Metoda returneaza un sir de caractere continând informatii despre applet. public String getappletinfo() { return "Cel mai simplu applet, autor necunoscut, ver 1.0"; } 10.03.2016 Curs - Aplicatii Java 41

7. Alte metode oferite de clasa Applet copyright@www.adrian.runceanu.ro Aflarea unor adrese URL referitoare la applet Se realizeaza cu metodele: getcodebase - ce returneaza URL-ul directorului ce contine clasa appletului getdocumentbase - returneaza URL-ul directorului ce contine documentul HTML în care este inclus appletul respectiv. Sunt foarte utile deoarece permit specificarea relativa a fisierelor folosite de un applet. 10.03.2016 Curs - Aplicatii Java 42

7. Alte metode oferite de clasa Applet Afisarea imaginilor Afisarea imaginilor într-un applet se face fie prin intermediul unei componente ce permite acest lucru, cum ar fi o suprafata de desenare de tip Canvas, fie direct în metoda paint a applet-ului, folosind metoda drawimage a clasei Graphics. copyright@www.adrian.runceanu.ro In ambele cazuri, încarcarea imaginii în memorie se va face cu ajutorul metodei getimage din clasa Applet. 10.03.2016 Curs - Aplicatii Java 43

7. Alte metode oferite de clasa Applet copyright@www.adrian.runceanu.ro Aceasta poate primi ca argument fie adresa URL absoluta a fisierului ce contine imaginea, fie calea sa relativa la o anumita adresa URL, cum ar fi cea a directorului în care se gaseste documentul HTML ce contine applet-ul (getdocumentbase) sau a directorului în care se gaseste clasa applet-ului (getcodebase). 10.03.2016 Curs - Aplicatii Java 44

7. Alte metode oferite de clasa Applet copyright@www.adrian.runceanu.ro import java.applet.applet; import java.awt.*; public class AppletImagine extends Applet { Image img = null; public void init() { img = getimage(getcodebase(), "imag.gif"); } public void paint(graphics g) { g.drawimage(img, 0, 0, this); } } 10.03.2016 Curs - Aplicatii Java 45

7. Alte metode oferite de clasa Applet copyright@www.adrian.runceanu.ro Afisarea unor mesaje în bara de stare a browserului Acest lucru se realizeaza cu metoda showstatus public void init() { showstatus("initializare applet..."); } 10.03.2016 Curs - Aplicatii Java 46

7. Alte metode oferite de clasa Applet copyright@www.adrian.runceanu.ro Aflarea contextului de executie Contextul de executie al unui applet se refera la pagina în care acesta ruleaza si este descris de interfata AppletContext. Crearea unui obiect ce implementeaza aceasta interfata se realizeaza de catre browser, la apelul metodei getappletcontext a clasei Applet. Prin intermediul acestei interfete un applet poate "vedea în jurul sau, putând comunica cu alte applet-uri aflate pe aceeasi pagina sau cere browser-ului sa deschida diverse documente. AppletContext env = getappletcontext(); 10.03.2016 Curs - Aplicatii Java 47

7. Alte metode oferite de clasa Applet copyright@www.adrian.runceanu.ro Afisarea unor documente în browser Se face cu metoda showdocument ce primeste adresa URL a fisierului ce contine documentul dorit (text, html, imagine, etc). Aceasta metoda se gaseste în interfata AppletContext. try { URL doc = new URL("http://www.scoaladeinformatica.ro"); getappletcontext().showdocument(doc); } catch(malformedurlexception e) {} 10.03.2016 Curs - Aplicatii Java 48

7. Alte metode oferite de clasa Applet copyright@www.adrian.runceanu.ro Comunicarea cu alte applet-uri aflate pe aceeasi pagina Aceasta comunicare implica de fapt identificarea unui applet aflat pe aceeasi pagina si apelarea unei metode sau setare unei variabile publice a acestuia. Identificarea se face prin intermediu numelui pe care orice instanta a unui applet îl poate specifica prin atributul NAME. Obtinerea unei instante a unui applet al carui nume îl cunoastem sau obtinerea unei enumerari a tuturor applet-urilor din pagina se fac cu metodele definite de interfata AppletContext getapplet si getapplets. 10.03.2016 Curs - Aplicatii Java 49

Applet-uri în Java 1. Ce este un applet? 2. Crearea unui applet simplu 3. Ciclul de viata al unui applet 4. Interfata grafica cu utilizatorul 5. Definirea si folosirea parametrilor 6. Tag-ul <APPLET> 7. Alte metode oferite de clasa Applet 8. Probleme de securitate 10.03.2016 Curs - Aplicatii Java 50

8. Probleme de securitate Un applet nu poate sa: Citeasca sau scrie fisiere pe calculatorul pe care a fost încarcat (client) Deschida conexiuni cu alte masini în afara de cea de pe care provine (host) Porneasca programe pe masina client Citeasca diverse proprietati ale sistemului de operare al clientului Ferestrele folosite de un applet, altele decât cea a browserului, vor arata altfel decât într-o aplicatie obisnuita. 10.03.2016 Curs - Aplicatii Java 51

Arhivarea appleturilor Am observant ca un applet aflat pe o pagina Web pentru a putea fi executat trebuie sa fie transferat de pe serverul care gazduieste pagina Web solicitata pe masina clientului. Deoarece transferul datelor prin retea este un proces lent, cu cat dimensiunea fisierelor care formeaza applet-ul este mai redusa, cu atat incarcarea acestuia se va face mai repede. Mai mult, daca applet-ul contine si alte clase in afara de cea principala sau diverse resurse (imagini, sunete, etc), acestea vor fi transferate prin retea abia in momentul in care va fi nevoie de ele, oprind temporar activitatea applet-ului pana la incarcarea lor. 10.03.2016 Curs - Aplicatii Java 52

Arhivarea appleturilor Din aceste motive, cea mai eficienta modalitate de a distribui un applet este sa arhivam toate fisierele necesare acestuia. Arhivarea fisierelor unui applet se face cu utilitarul jar, oferit in distributia J2SDK. Includerea unui applet arhivat intr-o pagina Web se realizeaza specificand pe langa numele clasei principale si numele arhivei care o contine: <applet archive=arhiva.jar code=clasaprincipala width=400 height=200 /> 10.03.2016 Curs - Aplicatii Java 53

Referinte Curs practic de Java, Cristian Frasinaru capitolul Applet-uri http://docs.oracle.com/javase/8/docs/technotes/guides/jweb /applet/using_tags.html https://docs.oracle.com/javase/tutorial/deployment/applet/ http://www.tutorialspoint.com/java/java_applet_basics.htm http://archive.oreilly.com/oreillyschool/courses/java3/java31 4.html http://www.javakode.com/applets/ 10.03.2016 Curs - Aplicatii Java 54

Întrebări? 10.03.2016 Curs - Aplicatii Java 55