aplica ii java - · pdf fileimport java.util.set; import java.util.sortedmap; ... aplicatii...

68
Aplica ț ii JAVA Universitatea Constantin Brâncuşi” din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Lect.dr . Adrian Runceanu

Upload: buithu

Post on 30-Jan-2018

234 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

Aplicații JAVA

Universitatea “Constantin Brâncuşi” din Târgu-JiuFacultatea de Inginerie

Departamentul de Automatică, Energie şi Mediu

Lect.dr. Adrian Runceanu

Page 2: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Curs 7

Colecții în Java(continuare)

22.04.2015 Curs - Aplicatii Java 2

Page 3: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

7. Colecții

1. Colecții - exemple

322.04.2015 Curs - Aplicatii Java

Page 4: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Exemplu de tipuri de clase

Urmatorul exemplu foloseste diferite clase de colectii si

adauga cate un element in aceste colectii

import java.util.Map;

import java.util.Set;

import java.util.SortedMap;

import java.util.SortedSet;

import java.util.TreeMap;

import java.util.TreeSet;

22.04.2015 Curs - Aplicatii Java 4

Page 5: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Exemplu de tipuri de clase

import java.util.ArrayList;

import java.util.Collection;

import java.util.HashMap;

import java.util.HashSet;

import java.util.Iterator;

import java.util.LinkedHashMap;

import java.util.LinkedHashSet;

import java.util.LinkedList;

import java.util.List;

22.04.2015 Curs - Aplicatii Java 5

Page 6: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Exemplu de tipuri de clase

public class Main {

public static void main(String[] args) {

List lnkLst = new LinkedList();

lnkLst.add("element1");

lnkLst.add("element2");

lnkLst.add("element3");

lnkLst.add("element4");

displayAll(lnkLst);

22.04.2015 Curs - Aplicatii Java 6

Page 7: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Exemplu de tipuri de clase

List aryLst = new ArrayList();

aryLst.add("x");

aryLst.add("y");

aryLst.add("z");

aryLst.add("w");

displayAll(aryLst);

22.04.2015 Curs - Aplicatii Java 7

Page 8: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Exemplu de tipuri de clase

Set hashSet = new HashSet();

hashSet.add("set1");

hashSet.add("set2");

hashSet.add("set3");

hashSet.add("set4");

displayAll(hashSet);

22.04.2015 Curs - Aplicatii Java 8

Page 9: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Exemplu de tipuri de clase

SortedSet treeSet = new TreeSet();

treeSet.add("1");

treeSet.add("2");

treeSet.add("3");

treeSet.add("4");

displayAll(treeSet);

22.04.2015 Curs - Aplicatii Java 9

Page 10: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Exemplu de tipuri de clase

LinkedHashSet lnkHashset = new LinkedHashSet();

lnkHashset.add("one");

lnkHashset.add("two");

lnkHashset.add("three");

lnkHashset.add("four");

displayAll(lnkHashset);

22.04.2015 Curs - Aplicatii Java 10

Page 11: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Exemplu de tipuri de clase

Map map1 = new HashMap();

map1.put("key1", "J");

map1.put("key2", "K");

map1.put("key3", "L");

map1.put("key4", "M");

displayAll(map1.keySet());

displayAll(map1.values());

22.04.2015 Curs - Aplicatii Java 11

Page 12: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Exemplu de tipuri de clase

SortedMap map2 = new TreeMap();

map2.put("key1", "JJ");

map2.put("key2", "KK");

map2.put("key3", "LL");

map2.put("key4", "MM");

displayAll(map2.keySet());

displayAll(map2.values());

22.04.2015 Curs - Aplicatii Java 12

Page 13: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Exemplu de tipuri de clase

LinkedHashMap map3 = new LinkedHashMap();

map3.put("key1", "JJJ");

map3.put("key2", "KKK");

map3.put("key3", "LLL");

map3.put("key4", "MMM");

displayAll(map3.keySet());

displayAll(map3.values());

}

22.04.2015 Curs - Aplicatii Java 13

Page 14: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Exemplu de tipuri de clase

static void displayAll(Collection col) {

Iterator itr = col.iterator();

while (itr.hasNext()) {

String str = (String) itr.next();

System.out.print(str + " ");

}

System.out.println();

}

}

22.04.2015 Curs - Aplicatii Java 14

Page 15: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Exemplu de tipuri de clase

Rezultatul obtinut este:

element1 element2 element3 element4 x y z w set1 set2 set3 set4 1 2 3 4 one two three four key4 key3 key2 key1 M L K J key1 key2 key3 key4 JJ KK LL MM key1 key2 key3 key4 JJJ KKK LLL MMM

22.04.2015 Curs - Aplicatii Java 15

Page 16: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Exemplu de tipuri de clase

Enunt:

Sa se determine dimensiunea(numarul de elemente)

unei colectii?

Se vor utiliza metodele:

1. collection.add() – pentru adaugarea unui nou

element intr-o colectie

2. collection.size() – pentru a afla dimensiunea

colectiei din clasa Collection

22.04.2015 Curs - Aplicatii Java 16

Page 17: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Exemplu de tipuri de clase

import java.util.*;public class CollectionTest {

public static void main(String [] args) { int size;HashSet collection = new HashSet ();String str1 = "Galben", str2 = "Alb", str3 = "Verde", str4 =

"Albastru"; Iterator iterator;collection.add(str1); collection.add(str2); collection.add(str3); collection.add(str4);

22.04.2015 Curs - Aplicatii Java 17

Page 18: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Exemplu de tipuri de clase

System.out.print("Informatiile colectiei: "); iterator = collection.iterator(); while (iterator.hasNext()){

System.out.print(iterator.next() + " "); }System.out.println();size = collection.size();if (collection.isEmpty()){

System.out.println("Collection este vida");} else{

System.out.println( "Numarul de elemente din Collection: " + size);

}System.out.println();

}}

22.04.2015 Curs - Aplicatii Java 18

Page 19: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Exemplu de tipuri de clase

Rezultatul obtinut este:

Informatiile colectiei: Albastru Alb Verde Galben

Numarul de elemente din Collection: 4

22.04.2015 Curs - Aplicatii Java 19

Page 20: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Exemplu de tipuri de clase

Enunt: Sa se afle valoarea minima si maxima dintr-o colectie de tip List?

import java.util.*;public class Main {

public static void main(String[] args) {List list = Arrays.asList("one Two three Four five sixone three Four".split(" "));System.out.println(list);System.out.println("max: " + Collections.max(list));System.out.println("min: " + Collections.min(list));

}}22.04.2015 Curs - Aplicatii Java 20

Page 21: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Exemplu de tipuri de clase

Rezultatul:

[one, Two, three, Four, five, six, one, three, Four]max: threemin: Four

22.04.2015 Curs - Aplicatii Java 21

Page 22: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Problema rezolvata

3. Sa se creeze un program care sa contina urmatoareleclase si interfete: Clasa Persoana care contine variabila membra private

String nume, functiile necesare pentru citirea si scriereaacestei variabile, constructori, etc.

Interfata Adresa care declara functiile abstracte String getAdresa() si void setAdresa(String s);

Clasa Student care extinde clasa Persoana siimplementeaza interfata Adresa.

Clasa Profesor care extinde clasa Persoana siimplementeaza interfata Adresa.

22.04.2015 Curs - Aplicatii Java 22

Page 23: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Problema rezolvata

În functia main() a programului sa se creeze un obiectStudent, cu numele Ionescu si adresa Targu-Jiu si un obiect Profesor cu numele Popescu si adresa Craiova.

Afisati la consola datele celor doua obiecte (numelesi adresa).

22.04.2015 Curs - Aplicatii Java 23

Page 24: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Problema rezolvata

Sa se implementeze o clasa Catalog care sa permita

urmatoarele operatii:

1) Adaugarea unui student (nume, media)

2) Afisarea tuturor studentilor

3) Cautarea unui student dupa nume

4) Stergerea unui student dupa nume

5) Ordonarea studentilor alfabetic dupa nume

6) Ordonarea studentilor dupa medie

22.04.2015 Curs - Aplicatii Java 24

Page 25: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Problema rezolvata

import java.util.*;class Student{

public String nume;public int media;public Student (String nume, int media){

this.nume = nume;this.media = media;

}public void afisare (){

System.out.println ("Nume: " + nume + " media: " + media);

}};22.04.2015 Curs - Aplicatii Java 25

Page 26: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Problema rezolvata

class ComparatorNume implements Comparator{

public int compare (Object o1, Object o2){

Student s1 = (Student) o1;Student s2 = (Student) o2;

// String.compareTo este echivalenta cu functia strcmp

return s1.nume.compareTo (s2.nume);}

}

22.04.2015 Curs - Aplicatii Java 26

Page 27: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Problema rezolvata

class ComparatorMedie implements Comparator

{

public int compare (Object o1, Object o2)

{

Student s1 = (Student) o1;

Student s2 = (Student) o2;

return s1.media - s2.media;

}

}

22.04.2015 Curs - Aplicatii Java 27

Page 28: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Problema rezolvata

class Catalog{

// in acest exemplu, putea fi si private ArrayList lista

private LinkedList lista;public Catalog (){// daca foloseam ArrayList, inlocuiam aceasta linie cu:// lista = new ArrayList ()

lista = new LinkedList ();}

22.04.2015 Curs - Aplicatii Java 28

Page 29: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Problema rezolvata

public void adaugare (Student s){lista.add (s);

}public void afisare (){

Iterator it = lista.iterator ();while (it.hasNext ()){

Student crt = (Student) it.next ();crt.afisare ();

}}22.04.2015 Curs - Aplicatii Java 29

Page 30: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Problema rezolvata

public Student cautare (String nume){

Iterator it = lista.iterator ();while (it.hasNext ()){

Student crt = (Student) it.next ();if (crt.nume.equals (nume))

return (crt);}return null; //daca nu s-a gasit

}

22.04.2015 Curs - Aplicatii Java 30

Page 31: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Problema rezolvata

public void stergere (String nume){

Iterator it = lista.iterator ();while (it.hasNext ()){

Student crt = (Student) it.next ();if (crt.nume.equals (nume)) it.remove ();

}}

22.04.2015 Curs - Aplicatii Java 31

Page 32: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Problema rezolvata

public void ordonare_medie (){

Collections.sort (lista, new ComparatorMedie ());}

public void ordonare_alfabetic (){Collections.sort (lista, new ComparatorNume ());

}}

22.04.2015 Curs - Aplicatii Java 32

Page 33: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Problema rezolvata

public class Problema_rezolvata{public static void main(String[] args){

Catalog c = new Catalog ();Student s1 = new Student ("Ionescu", 10);Student s2 = new Student ("Vasile", 5);Student s3 = new Student ("Popescu", 8);Student s4 = new Student ("Georgescu", 1);c.adaugare (s1);c.adaugare (s2);c.adaugare (s3);c.adaugare (s4);

22.04.2015 Curs - Aplicatii Java 33

Page 34: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Problema rezolvata

System.out.println ("Dupa adaugare:");System.out.println("----------------------------");c.afisare ();

Student s = c.cautare ("Georgescu");

if (s != null){

System.out.println("----------------------------");

System.out.println ("Am gasit studentul:");

s.afisare ();

System.out.println("----------------------------");

}

22.04.2015 Curs - Aplicatii Java 34

Page 35: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Problema rezolvata

elseSystem.out.println ("Georgescu nu a fost

gasit !");c.stergere ("Georgescu");System.out.println("----------------------------");System.out.println ("Dupa stergere:");System.out.println("----------------------------");c.afisare ();c.ordonare_alfabetic ();

22.04.2015 Curs - Aplicatii Java 35

Page 36: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Problema rezolvata

System.out.println("----------------------------");System.out.println ("Dupa ordonare alfabetic:");System.out.println("----------------------------");c.afisare ();c.ordonare_medie ();System.out.println("----------------------------");System.out.println ("Dupa ordonare dupa medie:");System.out.println("----------------------------");c.afisare ();}

}22.04.2015 Curs - Aplicatii Java 36

Page 37: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Probleme propuse

1. Sa se creeze o clasa care sa contina ca data membraprivata un vector (tablou unidimensional) de numereîntregi de dimensiune variabila, care se stabilestepentru fiecare obiect la constructia acestuia. În aceasta clasa redefiniti functia toString(), care sa

afiseze numerele continute. În functia main() a clasei principale construiti un

obiect din clasa creata care sa contina numerele 2, 9, 4, 5, 7, 8 si afisati continutul acestuia folosind functiatoString() a clasei respective.

22.04.2015 Curs - Aplicatii Java 37

Page 38: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Probleme propuse

2. Sa se creeze o clasa Complex, pentru definirea unuinumar complex, cu partea reala si imaginara ca numere de tip double. Definiti constructorii, functia de afisare (toString()),

functia de testare a egalitatii a doua obiecte (equals()) , o functie care realizeaza adunarea a doua numerecomplexe.

În functia main() creati doua obiecte din clasa Complex, cu valorile 2, 4, respectiv 5, 6 a partilor reale siimaginare.

Verificati daca cele doua obiecte sunt egale si afisatirezultatul la consola.

Calculati si afisati suma celor doua numere complexe.22.04.2015 Curs - Aplicatii Java 38

Page 39: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Referinte

Curs practic de Java, Cristian Frasinaru – capitolulColectii

http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html

http://www.tutorialspoint.com/java/java_collections.htm

22.04.2015 Curs - Aplicatii Java 39

Page 40: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 40

Aplicaţii Java

1. INTERFATA GRAFICA AWT

2. APPLET-URI

2.1. Pagina HTML pentru applet

2.2. Parametrii applet-ului transmisi în pagina HTML

Page 41: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 41

INTERFATA GRAFICA AWT

Pachetul AWT pune la dispozitia utilizatorului: o serie de componente grafice (components,

widgets, controls)clase pentru evenimenteinterfete etc.

Utilizând aceste componente, programatorul le poate combina pentru a construi o anumita interfata grafica (Graphical User Interface - GUI).

Page 42: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 42

INTERFATA GRAFICA AWT

Din punctul de vedere al utilizatorului, componentele grafice AWT sunt caracterizate:– printr-o forma– printr-un aspect (look -ceea ce se vede pe

ecran) – si prin modul de comportare, ca raspuns la

actiunile cu utilizatorulului (feel)

Page 43: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 43

La actiunea utilizatorului asupra unei componente grafice, JVM(Java Virtual Machine), având ca suport sistemul de operare, genereaza asa-numitele evenimente (obiecte Java ce contin diferite informatii despre actiunea utilizatorului asupra componentei).

Evenimentele (obiectele) sunt, mai departe, transmise de JVM unor metode specifice din cadrul programului.

Aceste metode sunt scrise de programator, sunt asociate cu componentele grafice si sunt responsabile de actiunea programului la aparitia evenimentelor (la actiunile utilizatorului asupra componentei respective).

Exista o varietate mare de componente, si fiecare componenta grafica poate genera anumite tipuri de evenimente.

Page 44: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 44

Din clasele de componente grafice o categorie aparte sunt componentele de tip Container care permit includerea altor componente grafice în interiorul lor.

Pentru crearea de meniuri exista clasele derivate din clasa MenuComponent.

Clasa Component defineste o serie de metode general valabile pentru componentele grafice AWT.

Printre acestea exista metode legate de pozitionarea si dimensiunea componentei, de culorile utilizate pentru afisare, de tipurile de fonturi utilizate, de control al afisarii, etc.

Page 45: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 45

Pachetul java.awt contine o serie de componente grafice simple, necesare în construirea unei interfete grafice minimale.

Aceste componente sunt:

– Label (se foloseste doar pentru afisarea unei linii de text, nu interactioneaza cu utilizatorul)

– Button (creaza imaginea unui buton asupra caruia se poate actiona prin “apasare”)

– Choice (permite selectia numai a unui articol dintr-o lista de articole)

– List (liste de selectie)– Checkbox (casete de validare) si altele

Page 46: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 46

În vederea lucrului cu texte, pachetul java.awt contine doua clase instantiabile: TextField, pentru lucrul cu o singura linie de text, si TextArea pentru lucrul cu texte pe mai multe

linii.

Componentele de tip container sunt componentele care furnizeaza cadru de plasare a componentelor grafice.

Adaugarea de noi componente în interiorul containerelor se face prin metoda add.

Page 47: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 47

Pentru dispunerea componentelor în cadrul unui container se asociaza acestuia un administrator de pozitionare (LayoutManager) care defineste regulile de asezare a componentelor în container.

Clasele disponibile pentru instantierea containerelor sunt clasele: 1. Panel2. Applet 3. ScrollPane4. Window5. Dialog6. Frame

Page 48: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 48

Componentele de tip Panel, Applet, ScrollPane pot sa fie adaugate la rândul lor în alte containere.

Cele de tip Window, Dialog, Frame nu permit acest lucru.

Pentru lucrul cu ferestre grafice package -ul java.awtofera o serie de clase derivate din clasa Window: Dialog, Frame, FileDialog.

Interfata grafica este creata pentru a asigura comunicatia între utilizator si program.

În Java pentru comunicatia între utilizator si program se folosesc evenimente, care sunt generate de componente (containere sau controale) la actiunile utilizatorului.

Page 49: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 49

Pentru dezvoltarea interfetelor grafice AWT se parcurg mai multe etape, care vor fi evidentiate în exemplele urmatoare:

Se porneste cu crearea unuia sau mai multor containere (obiecte din clase derivate din clasa Container).

Se creaza controalele (cu operatorul new; de exemplu new Button(), new Choice()).

Controalele create se insereaza într-un container, folosind functii add() ale containerului.

Modul de inserare a controalelor trebuie sa tina seama de administratorii de pozitionare impliciti sau noi creati ai containerului.

Page 50: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 50

Se prevede modul de tratare a evenimentelor generate de componente.

Pentru aceasta se creaza clase care implementeaza interfetele care contin metodele necesare tratarii evenimentelor dorite (clase de ascultare, clase delegat).

Dupa aceasta, se creaza obiecte din clasele de ascultare (delegati) care înregistreaza ca ascultatori ai evenimentelor care vor fi tratate.

Componentele si evenimentele AWT se pot folosi atât pentru aplicatiile independente (de sine statatoare -standalone) cât si pentru applet-uri.

Page 51: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 51

Aplicaţii Java

1. INTERFATA GRAFICA AWT

2. APPLET-URI

2.1. Pagina HTML pentru applet

2.2. Parametrii applet-ului transmisi în pagina HTML

Page 52: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 52

APPLET-URI

Un applet este un program Java care se descarca o data cu o pagina HTML si este executat în interiorul unui browser Web (exemplu Mozilla, Microsoft Internet Explorer, Safari, Chrome, etc).

Pentru ca applet-urile Java sunt programe care se obtin din Internet, se considera ca nu sunt de încredere si ca prezinta numeroase riscuri: – virusarea fisierelor sistem ale unui calculator si

extinderea virusilor si pe alte discuri, – distrugerea sau divulgarea informatiilor existente

în calculatorul în care se executa.

Page 53: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 53

Din motive de securitate, applet-urilor li se restrictioneaza operatiile pe care le pot efectua:– Applet-urile nu pot citi sau scrie fisiere pe un disc al unui

utilizator. Daca informatia trebuie salvata pe disc în timp ce un applet este în executie, memorarea informatiei trebuie facuta pe discul de pe care a fost încarcata pagina Web care contine applet-ul.

– Applet-urile nu pot realiza o conexiune pe retea spre un computer, altul decât cel de la care a fost încarcata pagina Web, cu exceptia îndreptarii browser-ului catre o noua locatie.

– Applet-urile nu pot folosi librariile dinamice sau partajate de la orice alt limbaj de programare. Desi Java poate folosi programe scrise în limbaje ca Visual C++, applet-urile nu se pot folosi de aceste caracteristici pentru ca nu exista nici o cale pentru o verificare adecvata a securitatii codului nonJava.

Page 54: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 54

Un applet se defineste printr-o clasa publica care extinde clasa Applet din pachetul java.applet, ca de exemplu:

public class HelloWorld extends java.applet.Applet { /* to do */ }

Clasa Applet extinde clasa java.awt.Panel, care este o ferestra si un container Java.

Aceasta definitie permite unui applet sa ocupe un loc fizic în pagina Web din fereastra browser-ului si sa admita includerea altor componente în interiorul lui.

Page 55: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 55

Metodele clasei Applet

Structura si comportarea unui applet e stabilita prin executia metodelor acestuia, apelate de browser în diferite situatii.

Exista versiuni implicite ale fiecareia dintre metode în cazul în care nu se opteaza pentru supraîncarcarea lor.

Daca un applet trebuie sa execute functii specifice, atunci una sau mai multe din aceste metode

trebuie supraîncarcate.

Page 56: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 56

init(): metoda de initializare folosita pentru a seta starea

unui applet: încarcarea imaginilor, initializarea variabilelor,

crearea obiectelor.

start(): porneste executia applet-ului sau îl reporneste

daca a fost oprit.

stop(): opreste un applet întrerupându-i executia dar îi

pastreaza resursele intacte astfel încât acesta sa poata

porni din nou. Un applet trebuie oprit înainte de a-l

distruge. Metoda poate fi folosita si pentru a opri executia

unui applet când este necesara o pauza în desfasurarea sa.

destroy(): distruge un applet, eliberând toate resursele

(memorie, spatiul de salvare pe disc). Aceasta este ultima

metoda care este apelata atunci când utilizatorul

paraseste pagina care contine applet-ul.

Page 57: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 57

Alte metode importante pentru un applet suntmetodele paint() si repaint(), mostenite de applet dinclasa Component.

Un applet poate apela direct functia repaint() oricândse doreste reactualizarea ferestrei.

Aceasta metoda apeleaza metoda paint(), care trebuie sa fie redefinita daca se doreste o anumitadesenare (afisare) în ferestra applet-ului.

Metoda paint() mai este apelata si de masina virtualaîn mod automat, ori de câte ori este necesararedesenarea applet-ului (la redimnsionarea ferestreibrowserului în care este inclus applet-ul, la descoperirea ferestrei dupa ca a fost acoperita sauminimizata etc.).

Page 58: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 58

Ca exemplu, se defineste applet-ul HelloWorld astfel:

// HelloWorld.java

import java.awt.*;

import java.applet.*;

public class HelloWorld extends Applet {

public void paint(Graphics g) {

g.drawString("Hello World !", 10, 10);

}

}

Page 59: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 59

Page 60: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 60

Pagina HTML pentru applet

Limbajul de Marcare HiperText (HTML) contine un set de coduri speciale (marcaje) care se insereaza într-un text, pentru a adauga informatii despre formatare si despre legaturi.

Prin conventie, toate marcajele HTML încep cu caracterul “<” si se termina cu caracterul “>” ( de exemplu <HTML>).

Page 61: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 61

Pagina HTML pentru applet

Acest control, sau marcaj HTML, comunica unui interpretor HTML (program de navigare) faptul ca documentul este scris si formatat în limbajul HTML.

Unele dintre controalele HTML sunt de tip pereche, având controale de început (de deschidere) si de sfârsit (de închidere) ( <HTML>, </HTML>, <BODY>, </BODY>).

Page 62: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 62

Compilarea applet-urilor se face tot cu compilatorul javac deoarece un applet este compus din clase Java.

Pentru introducerea (de fapt, specificarea) unui applet într-o pagina HTML se folosesc marcajele <APPLET> si </APPLET>.

Între aceste marcaje se înscriu mai multe atribute, dintre care obligatorii sunt numele fisierului care contine clasa applet-ului (atributul CODE) si dimensiunile ferestrei applet-ului (latimea si înaltimea: width, height).

Pagina HTML pentru applet

Page 63: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 63

Ca exemplu, mai jos sunt prezentate pagina HTML care contine applet-ul HelloWorld si imaginea care se obtine la încarcarea acestei pagini în browserul Internet Explorer:

<html><body><APPLET code=HelloWorld.class height = 250 width

= 250> </APPLET></body></html>

Pagina HTML pentru applet

Page 64: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 64

Daca se dau numai atributele de nume sidimensiune ale applet-ului, atunci fisierele class ale applet-ului trebuie sa se afle în acelasidirector cu pagina HTML care îl include pentru a fi gasite si descarcate la utilizator (browser).

Daca applet-ul se afla în alt director decât paginaHTML care îl include, directorul în care se aflafisierele class ale acestuia se specifica prinproprietatea CODEBASE a marcajului <APPLET> sub forma unei adrese URL (Uniform Resource Locator).

Pagina HTML pentru applet

Page 65: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 65

Parametrii applet-ului transmisi în pagina HTML

Pentru transmiterea unor date applet-urilor se poate folosi marcajul <PARAM> din limbajul HTML, care defineste numele si valoarea unui parametru.

Acesti parametri pot fi cititi în functia start() a applet-ului, memorati si apoi folositi în functionarea acestuia.

Ca exemplu, se modifica applet-ul HelloWorld si se obtine applet-ul HelloNume, care afiseaza un sir de caractere ce include numele si prenumele unei persoane salutate, iar aceste date se introduc ca parametri în pagina HTML care insereaza applet-ul.

Page 66: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 66

// HelloNume.javaimport java.awt.*;import java.applet.*;public class HelloNume extends Applet {

String nume = null;String prenume = null;public void start(){nume = getParameter("Nume");prenume = getParameter("Prenume");}

public void paint(Graphics g) {String str = "Hello " + nume + " " + prenume + " !";g.drawString(str, 20, 20);}

}

Page 67: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

2015/4/22 Aplicatii Java 67

Pagina HTML contine doi parametri (Nume si Prenume), ale caror valori care sunt citite la pornirea applet-ului (în functia start() a acestuia).

<html><body><applet code=HelloNume.class height = 250 width

= 250><PARAM NAME="Nume" VALUE="Popescu"><PARAM NAME="Prenume" VALUE="Costica"></applet></body></html>

Page 68: Aplica ii JAVA -  · PDF fileimport java.util.Set; import java.util.SortedMap; ... Aplicatii Java 6. copyright@  Exemplu de tipuri de clase List

[email protected]

Întrebări?

22.04.2015 Curs - Aplicatii Java 68