1. S se defineasc o clas "Complex" pentru numere complexe cu metode pentru operatii aritmetice si cu metode din clasa !O"#ect$ redefinite% e&uals toStrin'. Constructori cu si fr ar'umente. Pro'ram pentru calculul (alorii unui polinom de (aria"il complex cu coeficienti complecsi. ). S se defineasc o clas !SList$ pentru o list simplu *nlntuit de o"iecte fr a mai defini o clas auxiliar pentru un nod de list. Metode pentru adu'are si ster'ere de elemente plus metoda !toStrin'$. +. S se defineasc o clas ",mic" care contine numele si numerele de telefon al unei persoane -".ome""office""'sm"/. Pro'ram pentru crearea afisarea unui (ector de o"iecte ",mic" si sal(are *ntr0un fisier text -cu c1te o linie pentru fiecare persoan/. Metode impuse% "e&uals" "toStrin'". Pro'ram pentru citire si afisare fisier cu numere de telefon.
2. S se defineasc o clas !M3ime$ pentru momente de timp memorate su" forma a trei *ntre'i% or minut secund. Constructor cu ) si cu + ar'umente *ntre'i -numrul de secunde se consider implict 4ero la constructorul cu ) ar'umente/. Metode% e&uals toStrin' 'et5ours 'etMinutes 'etSeconds. Metoda !toStrin'$ creea4 un sir de forma 55%MM%SS -556ora MM6minut SS6secund/. 7. S se defineasc o clas !8nput$ cu metode pentru citirea de la consol a unor siruri de caractere si numere de diferite tipuri separate *ntre ele prin spatii al"e. Metode% nextStrin' next8nt next9loat s.a. Pro'ram pentru citirea unor numere de la tastatur si afisarea lor pe ecran. Clasa (a contine (aria"ile de tip DataInputStream StringTokenizer si String. Con(ersia de la sir la numr "inar se face cu metode ca !8nte'er.parse8nt$ !9loat.parse9loat$ s.a. :. S se defineasc o clas !9ile3o;eni4er$ cu aceleasi metode ca si clasa StringTokenizer dar cu efect diferit. Metoda !next3o;en$ are ca re4ultat urmtorul cu(1nt din fisier iar metoda !.asMore3o;ens$ are re4ultat !false$ la sf1rsit de fisier. Clasa (a contine (aria"ile de tip RandomAccessFile si StringTokenizer. Constructor cu ar'ument numele fisierului anali4at -de tip String/. <. S se defineasc o clas pentru un ar"ore "inar de cutare cu metode pentru adu'are sir la ar"ore -!add$/ pentru cutarea unui sir dat *n ar"ore cu re4ultat "oolean -!contains$/ si pentru transformarea sirurilor din nodurile ar"orelui *ntr0un sin'ur sir -!toStrin'$/ prin parcur'ere prefixat -rdcin st1n'a dreapta/. Pro'ram pentru crearea si afisarea unui ar"ore ordonat de siruri. Se poate defini o clas auxiliar pentru un nod de ar"ore "inar cu + (aria"ile si un constructor. =. S se defineasc o clas "Matrix" pentru operatii u4uale cu matrice de numere reale% adunare *nmultire "toStrin'". Pro'ram pentru ridicarea la o putere *ntrea' a unei matrice ptratice. >. S se defineasc o clas "?rap." pentru 'rafuri orientate cu noduri numerotate de la 1. @ate -de tip "pri(ate"/% numr de noduri si matrice de adiacente - matrice ptratica cu componente de tip ""oolean"/. Metode% "si4e" - numrul de noduri din 'raf/ "add,rc" -adau' un arc la 'raf/ "is,rc" -(erific dac exist arc *ntre dou noduri date/ "toStrin'" -lista de arce din 'raf/. Pro'ram pentru creare 'raf prin adu'ari succesi(e de arce -pe "a4a unor perec.i de numere citite de la consol/ afisare arce si afisare 'rad interior si exterior ptr fiecare nod -nr. de arce *n si din nod/ 1A. S se defineasc o clas !3imer$ pentru msurarea unor inter(ale de timp. Clasa contine dou (aria"ile de tip !lon'$ pentru momentul de *nceput si de sf1rsit al inter(alului msurat exprimate *n milisecunde. 8nter(alul msurat *ncepe la construirea o"iectului sau la apelul metodei !start$B metoda !stop$ retine momentul final. Metoda !'etMillis$ are ca re4ultat -lon'/ inter(alul scurs *ntre momentul initial si momentul final. Pentru a citi timpul curent din sistem -*n milisecunde/ a(em dou posi"ilitti% SCstem.current3imeMillies-/ neD @ate-/.'et3ime-/ 11. S se defineasc o clas pentru o list simplu *nlntuit ordonat ca su"clas a clasei !SList$ cu redefinirea metodei de adu'are a unui o"iect la list. 1). S se defineasc o clas pentru o sti( *nlntuit ca su"clas a clasei !SList$ cu metode "pus." "pop" "isEmptC" si redefinirea metodelor inter4ise pentru o sti(. 1+. S se defineasc o clas "SortedEector" deri(at din clasa Vector pentru un (ector ordonat de o"iecte compara"ile. Se (or redefini metodele% int indexOf-O"#ect/ FF indice o"iect cautat in (ector (oid addElement -O"#ect/ FF adau'a un nou o"iect la (ector Se poate folosi metoda "insertElement,t -O"#ectint/" din clasa Vector si metoda ""inarCSearc. -EectorO"#ect/" din clasa Collections. 12. S se defineasc o clas "8O9ile" deri(at din RandomAccessFile care s contin *n plus dou metode % "eof" cu re4ultat "true" dac s0a a#uns la sf1rsit de fisier si "DriteLine" cu parametru de tip String pentru scrierea unei linii *n fisier -cu adu'are terminator de linie/. Se (a folosi metoda "DriteBCtes-Strin'/". S se utili4e4e clasa !8O9ile$ *ntr0un pro'ram de copiere fisiere text. 17. S se defineasc o clas !9ileEector$ deri(at din clasa Vector *n care constructorul are ca ar'ument -Strin'/ un nume de fisier text si populea4 (ectorul construit cu date din fisier astfel% fiecare element din (ector este un o"iect Vector care contine cu(intele dintr0o linie a fisierului text. S se (erifice prin afisarea cu metoda !toStrin'$ a o"iectului 9ileEector creat. 1:. S se scrie o functie static cu ar'ument de tip Enumeration si re4ultat de tip double pentru calculul sumei elementelor unei colectii de o"iecte numerice -de tip Double/. S se (erifice pentru un (ector -o"iect Vector/ si apoi pentru un ta"el de dispersie -o"iect de tip Hashtable/ *n care s0au introdus o"iecte de tip Double. 1<. S se defineasc o clas "9ileComp" pentru comparare de fisiere dup criteriul indicat printr0o liter la construirea o"iectului comparator% -G6nume 36 tip S6 dimensiune fisier @6 data ultimei modificri/. 9ileComp-Strin' order/B FForder poate fi "G""3""S""@" S se defineasc o clas "9ileEnum" compati"il interfata cu Enumeration, pentru enumerarea fisierelor dintr0un director dat ordonate dup criteriul indicat la construirea o"iectului enumerator si filtrate conform unui o"iect filtru primit -e(entual/ de comparator. Ordonarea se (a face *n doua feluri% 0 folosind metoda ",rraCs.sort" 0 prin crearea unei multimi ordonate TreeSet. Constructori% FileEnum (File path, String order,FileFilter filter) // cu ordonare, fara filtru FileEnum (File path, String order) // cu ordonare, fara filtru FileEnum (File path, FileFilter filter) // fara ordonare, cu filtru FileEnum (File path) // implicit ordonare dupa data, fara filtru FileEnum (String order) // implicit directorul curent FileEnum () // implicit directorul curent 1=. S se defineasc o clas "Scanner" pentru un anali4or lexical de siruri. Constructor cu ar'ument sirul anali4at -Strin'/. Metoda suplimentara "int 'et3Cpe-/" are ca re4ultat tipul ultimului sim"ol extras din fisier -1 6 nume sim"olic ) 6 numar + 6 operator -caracter special/. 8ntre atomii lexicali pot exista sau nu spatii al"e. Eariante% a/ deri(at din clasa StringTokenizer, "/ fr a folosi clasa StringTokenizer 1>. S se defineasc o clas !E(aluator$ pentru un interpretor de instructiuni de atri"uire simple care foloseste un dictionar Hashtable pentru ta"ela de sim"oluri -nume si (alori (aria"ile/. Metoda e(al-Strin'/ interpretea4 o instructiune si actuali4ea4a ta"ela de sim"oluri -dictionarul/. Clasa E(aluator are un constructor cu numele unui fisier text si foloseste un o"iect !Scanner$. Metoda !toStrin'$ produce un sir cu numele si (alorile (aria"ilelor folosit la afisarea re4ultatelor e(alurii. 8nstructiunile pot a(ea forma (6op H0 op H0 op ... unde% op 6I(cJ ( este un nume de (aria"il c este o constant *ntrea' fr semn. 9iecare instructiune se afla pe o linie separata. )A. S se defineasc o clas "5Set" pentru o multime reali4at ca ta"el de dispersie cu metodele% add contains toStrin' si4e. Clasa "5Set" (a fi deri(at din clasa Hashtable *n care c.eia si (aloarea asociat (or fi e'ale -c.eile sunt elementele multimii/. Pro'ram pentru adu'area unor siruri la multime si afisarea multimii. S se foloseasc si metoda "elements" pentru afisarea elementelor multimii. )1. S se defineasc o clas ",rraCSet" pentru o multime de o"iecte reali4at ca (ector neordonat cu elemente distincte *n dou (ariante% clasa ",rraCSet" deri(at din clasa Vector si clasa ,rraCSet contine un o"iect de tip Vector. Metode din clasa Vector si din ,rraCSet% "oolean add-O"#ect/ "oolean remo(e-O"#ect/ "oolean contains-O"#ect/ Strin' toStrin'-/. Re4ultatul metodelor "add" si "remo(e" este "true" dac operatia cerut a reusit -dac s0a modificat multimea pentru care se execut/. Pro'ram pentru crearea unei multimi de siruri prin adu'ari succesi(e eliminarea unor elemente si afisare dup fiecare operatie. )). S se defineasc o clas L5Set pentru o multime de o"iecte reali4at ca ta"el de dispersie cu mentinerea ordinii de introducere *n multime. 3a"elul de dispersie este un (ector de liste de coli4iuni. Clasa L5Set contine un (ector intrinsec de o"iecte de tip "Gode" unde "Gode" este o clas cu o (aria"il de tip O"#ect si dou (aria"ile de tip Gode% le'atur la urmtorul nod din lista de coli4iuni si le'tur la urmtorul element din lista care mentine ordinea de adu'are la multime. Clasa L5Set extinde clasa ,"stractSet si defineste metodele "add" "si4e" "contains" si "iterator". 8teratorul asociat clasei L5Set foloseste lista tuturor elementelor din multime -face o enumerare *n ordinea de adu'are la multime/. Metoda "remo(e" nu (a fi implementat -arunc exceptia UnsupportedOperationException/. )+. S se defineasc o clas "SortedEector" pentru un (ector ordonat dup orice criteriu specificat de utili4ator la construirea unui o"iect "SortedEector". Clasa (a contine o (aria"il de tip Comparator initiali4at de un constructor cu ar'ument de tip Comparator si folosit de metoda ""inarCSearc.". Pro'ram pentru afisarea cu(intelor distincte dintr0un text *n ordine descresctoare. )2. S se defineasc o clas filtru dup lun'imea fisierelor si s se foloseasc pentru afisarea numelor fisierelor cu lun'ime mai mare dec1t o (aloare dat *n linia de comand. Clasa filtru (a implementa interfata FilenameFilter si (a fi folosit de metoda !list$ din clasa File. )7. S se defineasc o clas filtru pentru selectie fisiere dup o list de extensii -tipuri de fisiere/. Clasa implementea4 una din interfatele FileFilter sau FilenameFilter si contine un (ector cu tipurile de fisiere acceptate. Pro'ram pentru afisarea fisierelor le'ate de Ka(a -"#a(a" "class" "#ar"/. ):. S se defineasc o clas filtru pentru selectie fisiere dup o masc ce poate contine caractere LML si LNL. Eariante% clasa implementea4 interfata FileFilter sau interfata FilenameFilter. Pro'ram pentru (erificarea clasei. )<. S se scrie o metod static !select$ pentru filtrarea unei colectii. 9unctia are un ar'ument de tip Collection si un ar'ument de tipul FileFilter sau FilenameFilter si re4ultat de tip !ist Se (a defini o clas filtru dup un su"sir continut de sirurile o"tinute din o"iectele colectiei. Pro'ram pentru crearea unei multimi de siruri pe "a4a cu(intelor dintr0un fisier extra'erea si afisarea cu(intelor care contin un su"sir dat. )=. S se defineasc o clas a"stract !Collection9ilter$ pentru filtrarea oricrei colectii de o"iecte cu urmtoarele metode pu"lice% a"stract "oolean accept -O"#ect o"#/B FF daca o"# este accepta"il sau nu List select -Collection c/B FF retin in lista o"iectele accepta"ile S se defineasc o clas deri(at din clasa precedent pentru selectarea o"iectelor care transformate *n siruri -cu metoda toStrin'/ contin un sir dat -*n constructorul clasei/. S se (erifice clasa prin afisarea listei produse de metoda select. )>. S se defineasc o clas ",rraCSet" pentru o multime de o"iecte reali4at ca (ector -Arra"!ist/ care pstrea4 ordinea de introducere *n (ector si care s poat *nlocui o clas TreeSet sau HashSet -s implemente4e interfata Set/. Eariante% a# clasa extinde pe Arra"!ist si implementea4 interfata SetB b# clasa extinde pe AbstractSet si contine un o"iect Arra"!ist +A. S se defineasc o clas "Sorted,rraCSet" pentru o multime ordonat de o"iecte cu posi"ilitate de ordonare dup metoda "compare3o" sau dup metoda "compare". S se foloseasc *n pro'ramul pentru afisarea cu(intelor distincte dintr0un text *n ordine cresctoare si descresctoare. Eariant% clasa implementea4 interfata SortedSet. +1. S se defineasc o clas pentru o sti( list *nlntuit folosind clasa existent !inked!ist. Se (or defini aceleasi metode ca cele din clasa Stack. +). S se defineasc o clas !5Set$ pentru o multime de o"iecte reali4at ca ta"el de dispersie *n care (ectorul principal s contin referinte la o"iecte !inked!ist -sinonimele se memorea4 *n liste *nlntuite/. S se (erifice metodele clasei. Clasa (a fi o (ariant simplificat a clasei HashSet -dar nu se (a folosi HashSet/. ++. S se defineasc o clas ",rraCMap" pentru un dictionar reali4at din doi (ectori % un (ector de c.ei si un (ector de (alori asociate si care s implemente4e interfata $ap. Se (or defini metodele% toStrin' put 'et ;eCSet (alues. S se foloseasc *n pro'ramul de afisare a numrului de aparitii al cu(intelor *ntr0un text. +2. S se defineasc o clas ",rraCMap" pentru un dictionar reali4at din doi (ectori% un (ector de c.ei si un (ector de (alori asociate care s extind clasa Abstract$ap. Metoda !entrCSet$ nu (a folosi o clas multime existent -HashSet sau TreeSet/ ci (a folosi o clas ce extinde pe AbstractSet cu un iterator care parcur'e cei doi (ectori din clasa ,rraCMap -asi'ur o !ima'ine$ de multime de perec.i asupra celor doi (ectori/. +7. S se defineasc o clas "Lin;edSet" pentru o multime reali4at ca list *nlntuit de elemente distincte. Clasa (a implementa interfata Set. Se (or examina (ariantele% 0 "Lin;Set" este deri(at din clasa !inked!ist 0 "Lin;Set" este deri(at din clasa AbstractSet si contine un o"iect !inked!ist. Pro'ram pentru crearea unei liste de o"iecte Integer si afisarea ei. 9olosind un o"iect iterator sa se afise4e codul ".as." pentru toate elementele multimii -re4ultatul functiei ".as.Code"/. +:. S se defineasc o clas Lin;edMap deri(at din clasa Abstract$ap, care contine un o"iect de tip Lin;edSet. Se (or defini metodele !put$ si !entrCSet$. Se (a defini si folosi o clas MEntrC care implementea4 interfata $apEntr" pentru o perec.e de o"iecte c.eie0(aloare. Pro'ram pentru crearea si afisarea unui dictionar cu (alorile (aria"ilelor *nt1lnite *n instrucutiuni de atri"uire simple de forma (6c sau (6( unde OcP este un numr *ntre' -o constant/ iar ( este un nume de (aria"il. Exemplu% x6+ F C6x F 4 6< F x6 4 F Re4ultat% Qx%< C%+ 4%<R +<. Pro'ram pentru afisarea unei liste de referinte *ncrucisate cu fiecare cu(1nt distinct dintr0un fisier text *mpreun cu numerele liniilor de text *n care apare acel cu(1nt. Se (a folosi un o"iect Tree$ap *n care se (or introduce ca (alori asociate cu(intelor liste de numere -o"iecte de tip !inked!ist sau "Lin;edSet" cu elemente de tip Integer/. Pentru afisare se (or redefini metodele "toStrin'" si ";eCSet". 9iecare cu(1nt (a *ncepe pe o linie nou si (a fi urmat de lista liniilor *n care apare. +=. S se defineasc o clas "MultiMap" pentru un dictionar cu (alori multiple -o c.eie are asociat o multime de (alori/ ca o clas deri(at din Abstract$ap si care contine o (aria"il de tip Abstract$ap. Metode impuse% O"#ect put -O"#ect ;eC O"#ect (alue/ % pune perec.e c.eie0(aloare *n dictionar O"#ect 'et -O"#ect ;eC/ % scoate multimea de (alori asociate unei c.ei. Constructorul clasei "MultiMap" are un parametru de tip $ap iar *n pro'ram se (a folosi un parametru efecti( de tip ",rraCMap" sau Tree$ap sau Hashmap. Pro'ram pentru crearea unui ta"el de referinte *ncrucisate folosind un o"iect "MultiMap" *n care c.eia este un cu(1nt iar multimea de (alori asociate este lista numerelor de linii *n care se afl cu(1ntul respecti(. +>. S se defineasc o clas !SortedLin;edSet$ pentru multimi de o"iecte reali4ate ca liste *nlntuite ordonate si care contine o (aria"il de tip Comparator. Unul din constructori are ar'ument de tip Comparator pentru initiali4area (aria"ilei din clas. Se (or examina dou (ariante% -a/ Clasa extinde pe AbstractSet implementea4 SortedSet si contine o (aria"il !inked!ist& -"/ Clasa extinde pe !inked!ist si implementea4 pe SortedSet. 2A. S se defineasc o clas "Lin;edSueue" deri(at din AbstractCollection si care contine dou (aria"ile de tip "Gode" pentru adresa primului si a ultimului element din coad. Clasa "Gode" este o clas inclus si corespunde unui nod de list simplu *nlntuit. Pro'ram pentru introducerea si extra'erea de siruri *ntr0o coad cu afisare continut coad dup fiecare operatie. 21. S se defineasc o clas pentru un nod de ar"ore "inar ca o clas interioar clasei pentru ar"ori "inari. Clasa ar"ore contine c1te(a metode strict necesare % !add$ !toStrin'$. Ca alternati( la metoda !toStrin'$ se pot defini metode pentru (i4itare *n lr'ime si *n ad1ncime -prefixat infixat si postfixat/ cu re4ultat String. 2). S se defineasc clase iterator incluse pentru ar"orele "inar din pro"lema anterioar pentru cele 2 moduri de (i4itare a nodurilor. Clasa ar"ore (a contine si 2 metode cu re4ultat Iterator care instantia4 aceste clase. 2+. S se defineasc o clas "3a"le" pentru o matrice de o"iecte cu metodele% "toStrin'" si "sort-col/". Metoda "sort" ordonea4 matricea dup (alorile dintr0o coloan dat "col" si apelea4 metoda ",rraCs.sort" cu un al doilea parametru de tip Comparator. Clasa comparator de linii se (a defini mai *nt1i ca o clas cu nume inclus *n clasa "3a"le" si apoi ca o clas anonim inclus *n metoda "sort". O matrice este un (ector de (ectori-de linii/ iar metoda "compare" compar dou linii dup (alorile dintr0o coloan dat. Se presupune c o"iectele din matrice sunt dintr0o clas compati"il cu Comparable si deci suport metoda "compare3o". Pro'ram pentru reordonarea unui o"iect "3a"le" dup toate coloanele posi"ile cu afisare dup fiecare ordonare. O"iectul "3a"le" poate fi creat pe "a4a urmatoarei matrice de siruri% Strin' aQRQR6 II"7"")""+"JI"2""1"":"JI"1""<""A"JI"1""1""1"JJB 22. Un fisier text contine linii formate din mai multe cu(inte separate prin spatii al"e. S se defineasc o clas "LineList" pentru o list de linii creat pe "a4a unui fisier -constructor cu numele fisierului/. Clasa contine o metoda "sort" de ordonare a listei de linii dup un cu(1nt dat din linie -prin numrul su *n cadrul liniei *ncep1nd cu 1/. Pro'ramul pentru (erificarea clasei primeste *n linia de comand numele fisierului si numrul cu(1ntului dup care se ordonea4. Liniile ordonate se afisea4 pe ecran. Pentru ordonare se apelea4a functia ",rraCs.sort" cu parametru de tip Comparator. Clasa comparator este definit ca o clas inclus *n clasa "LineList" si apoi ca o clas inclus *n "locul metodei "sort" -anonim/. Se consider c fisierul poate fi citit inte'ral *n memoria intern. 27. S se defineasc o clas "ReaderTriter" pentru fisiere cu operatii pe caractere si care suport at1t operatii de citire c1t si operatii de scriere. Clasa preia metode de la clasele File'riter -prin mostenire/ si de la FileReader -prin dele'are/. Metode din clasa "ReaderTriter"% read Drite close reset -repo4itionare pe *nceput de fisier/. Pro'ram pentru crearea unui fisier urmat de citirea lui folosind clasa ReaderTriter. 2:. Pro'ram pentru crearea unui fisier comprimat -format !'4ip$/ dintr0un fisier text si decomprimarea pentru afisarea fisierului folosind o"iecte ()I*+utputStream si ()I*InputStream construite pe "a4a unor o"iecte File+utputStream si respecti( FileInputStream. Se (or folosi metode de citireFscriere octet !read$ si !Drite$. 2<. S se defineasc o clas pentru citire cu con(ersie dintr0un fisier text -dintr0un flux/ paralel cu clasa *rintStream. Metode% !readStrin'$ !read8nt$ !read9loat$. Se i'nor spatiile al"e dintre siruri la citire. Clasa poate extinde fie clasa Reader fie clasa FilterInputStream si foloseste o (aria"il StringTokenizer. Clasa are un constructor fr ar'umente pentru citire de la consol si un constructor cu ar'ument String pentru citire dintr0un fisier. Se poate utili4a si clasa StreamTokenizer. 2=. S se defineasc o clas 3Gode pentru un nod de ar"ore multici care implementea4 interfata Tree,ode din pac.etul !#a(ax.sDin'.tree$ plus metodele% insert remo(e add setParent -din Muta"le3reeGode/ 'etUserO"#ect toStrin' Clasa contine o (aria"il de tip +b-ect -pentru datele memorate *n nod/ o (aria"il de tip Vector pentru referinte la succesori -la nodurile fii/ si o (aria"il Tree,ode pentru nodul printe. S se foloseasc clasa 3Gode pentru crearea si afisarea unui ar"ore cu marca#ele dintr0un fisier UML. 2>. S se defineasc o clas adaptor de la interfata Iterator la interfata Enumeration. S se defineasc o clas 3Gode care implementea4 interfata Tree,ode plus metodele urmtoare % insert remo(e add setParent -din Muta"le3reeGode/ 'etUserO"#ect toStrin' Clasa 3Gode contine o list *nlntuit !inked!ist de noduri fii. S se foloseasc clasa 3Gode pentru crearea si afisarea -prefixat cu indentare/ a unui ar"ore cu numele fisierelor dintr0un director dat si din toate su"directoarele sale -recursi(/. Aplicatii cu interfat grafic (cu clase JFC) 1. S se defineasc o clas "M9rame" deri(at din .Frame cu 2 constructori 0 un constructor fr ar'umente 0 un constructor cu parametru "Strin'" care repre4int titlul ferestrei 0 un constructor cu doi parametri "int" ce repre4int dimensiunile ferestrei. 0 un constructor cu patru parametri "int"% dimensiuni si po4itie fereastr. Pentru sta"ilirea coordonatelor coltului din st1n'a sus se poate folosi metoda% setLocation -int x int C/B S se includ si metoda "setEisi"le" *n constructorii clasei "M9rame". 8n functia "main" se (or crea dou ferestre dispuse una su" alta -afisate automat/. ). Pro'ram pentru afisarea unei etic.ete .!abel si a unui c1mp text .Te/tField nemodifica"il -setEdita"le-false// pentru afisarea numelui si (alorii unei proprietti -de ex. numele "Color" *n etic.eta si (aloarea "T.ite" *n c1mpul text. Se (a folosi ase4area Flo0!a"out. Se (or adu'a apoi% 0 "ordura la c1mpul text - setBorder-neD Etc.edBorder-// 0 culoare al" la c1mpul text -setBac;'round -Color.D.ite// 0 dimensiune dorit la c1mpul text -setPreferredSi4e-1=A)A// S se extind pro'ramul pentru afisarea ta"elei de proprietti sistem Ka(a. Exemplu de afisare a ta"elei de proprietti *n mod text% Properties prop = System.getProperties(); Enumeration e = prop.propertyNames(); hile (e.has!oreElements()) " String pname = (String) (e.ne#tElement()); System.out.println ( pname$%&%$ prop.getProperty(pname)) ; ' +. Pro'ram pentru afisarea unui mic formular de introducere a datelor -fr tratarea e(enimentelor/. 9ormularul (a contine + ru"rici fiecare ru"ric este un c1mp text precedat *n st1n'a de o etic.et. Ce mod de ase4are si c1te panouri tre"uie folosite pentru a mentine etic.etele *n partea st1n' a ferestrei si c1mpurile text *n partea dreapt indiferent de dimensiunile ferestrei principale ale etic.etelor si c1mpurilor N 2. Pro'ram pentru afisarea unei ferestre asemntoare celei afisate de comanda !Run$ din sistemul TindoDs% un c1mp text cu o etic.et -!Open$/ *n st1n'a lui si + "utoane% OVCancel BroDse. Se (a *nlocui apoi c1mpul text cu un o"iect de tip .Combo1o/ -pentru selectia unui text dintr0o list/. 7. Pro'ram pentru afisarea unui nume de director -primit *n linia de comand/ *ntr0 un c1mp text si a numelor fisierelor din acest director *ntr0o list .!ist. S se foloseasc apoi o 4on text .Te/tArea *n locul listei .!ist. Se pot adu'a etic.ete c1mpului text si 4onei text -!@irectorC$ si !9iles$/. :. S se defineasc o clas care implementea4 interfata $ouse!istener prin redefinirea metodei "mousePressed" cu efectul de producere semnal sonor. Se (a folosi metoda 3ool;it.'et@efault3ool;it-/."eep-/B S se scrie un pro'ram care reactionea4 sonor la orice clic pe mouse pe suprafata ferestrei principale - de tip Frame sau .Frame/. S se 'enere4e semnal sonor si *n metodele "mouseEntered" "mouseExited" si s se o"ser(e efectul la deplasare mouse *n interiorul si in afara ferestrei. S se mute semnalul sonor din "mousePressed" *n "mouseClic;ed" si s se o"ser(e efectul -si atunci cand durea4a mult intre apasare si eli"erare "uton/. S se rescrie pro'ramul anterior prin modificarea clasei receptor astfel ca ea s extind clasa a"stract $ouseAdapter *n loc s implemente4e interfata $ouse!istener. <. S se defineasc o clas care implementea4 interfata 2e"!istener cu metoda ";eCPressed" definit pentru afisare *ntr0un c1mp text a codului tastei apasate -o"tinut cu metoda ";eCCode" din clasa 2e"E3ent/. S se scrie un pro'ram cu dou c1mpuri text -.Te/tField/% unul pentru introducere si unul pentru afisare coduri taste apsate. Examinati toate posi"ilitatile de definire a clasei asculttor. Metoda ";eCPressed" este apelat la apsarea oricrei taste -inclusi( S.ift Ctrl ,lt/. Metoda ";eC3Cped" este apelat numai la actionarea unei taste ce corespunde unui caracter Unicode -,scii/. Modificati pro'ramul pentru afisare *n c1mpul text a mesa#ului "VeC3Cped" sau "VeCPressed". =. S se modifice pro'ramul anterior prin redefinirea clasei asculttor ca o clas ce extinde clasa 2e"Adapter -*n loc s implemente4e 2e"!istener/. Examinati toate posi"ilittile de definire a clasei asculttor. >. Pro'ram pentru afisarea unui "uton cu inscriptia "Clic; Me" si afisarea unei casete de dialo' cu titlul "E(ent 9ired" la fiecare clic pe "uton -cu mouse/. ,fisarea casetei de dialo' se face astfel% KOptionPane.s.oDMessa'e@ialo'-neD K9rame-/"""E(ent 9ired W" KOptionPane.PL,8GXMESS,?E/B Se (or examina pe r1nd urmtoarele (ariante de definire a clasei ascultator la e(enimente 'enerate de "uton% a/ Cu trei clase separate% clasa asculttor clasa deri(at din .Frame care contine si un "uton clasa cu "main" -care afisea4 fereastra/. "/ Cu dou clase% clasa asculttor si clasa deri(at din .Frame si care contine metoda "main". c/ Cu o sin'ur clas% clasa asculttor cu nume inclus *n clasa ce contine metoda "main" -clasa inclus este si static/ d/ Cu o sin'ura clas % clasa asculttor anonim inclus *ntr0un "loc -metoda "add,ctionListener"/ din clasa ce contine metoda "main". e/ Cu dou clase% O su"clas a clasei .1utton care contine si metoda "actionPerformed" si clasa care contine metoda "main". f/ Cu dou clase % clasa asculttor inclus *ntr0o su"clas a clasei .Frame -separat de clasa ce contine metoda "main"/ '/ O sin'ur clas care extinde pe .Frame si implementea4 Action!istener -clasa este si 'enerator si asculttor la e(enimente/. 1A. Pro'ram pentru afisarea a doua c1mpuri text -nemodifica"ile/ si a trei "utoane radio -KRadioButton/ notate cu ,BC si 'rupate *ntr0un 'rup de "utoane -"Button?roup"/. 8n primul c1mp se afisea4 o *ntre"are -"Ce ale'eti"/. @up apsarea unui "uton se afisea4a *n al doilea c1mp numele selectat -,BC/. 3oate cele + "utoane radio au un sin'ur o"iect ascultator de tip Action!istener care modific continutul c1mpului re4ultat -cu rspunsul la *ntre"are/. Pro'ramul corespunde unei *ntre"ri cu un sin'ur rspuns posi"il dintr0un test 'ril. 11. Modificati pro'ramul anterior pentru afisarea unor casete cu "ifare .Check1o/ si afisarea numelor casetelor selectate *n c1mpul text. Pro'ramul corespunde unei *ntre"ri cu mai multe rspunsuri posi"ile dintr0un test 'ril. Cum se poate inter4ice "ifarea repetat a unor casete N 3oate cele + casete au un sin'ur ascultator de tip Item!istener cu o metod "itemStateC.an'ed" si cu ar'ument de tip ItemE3ent. Metoda "'etSource" apelat pentru un o"iect e(eniment are ca re4ultat numele casetei care a 'enerat e(enimentul -care difer de textul afisat l1n' caset si transmis la construirea o"iectului .Check1o/. 1). S se defineasc o clas "Lin;ListModel" pentru un model de list care foloseste o list *nlntuit *n loc de (ector. Eariante% Clasa extinde Abstractlist$odel si contine o (aria"il !inked!ist sau clasa extinde !inked!ist si este compati"il cu interfata !ist$odel. 1+. Pro'ram care simulea4 un calculator cu operatii de adunare si scdere. 9ereastra aplicatiei contine dou c1mpuri text% unul pentru numrul introdus si altul pentru re4ultatul operatiilor anterioare -am"ele de lun'ime )A/. 9ereastra mai contine trei "utoane% pentru adunare-H/ pentru scadere-0/ si pentru ster'ere c1mpuri -"Clear"/. @imensiunile ferestrei sunt -)2A12A/. Gumerele se introduc prin taste si sunt aliniate la dreapta *n c1mpurile text - tf.set5ori4ontal,li'nment -tf.R8?53/ /. @up orice operatie -H0Clear/ controlul re(ine c1mpului de introducere -prin "re&uest9ocus"/. Cum se pot e(ita introducerile 'resite -caractere inter4ise *n numere/ N 12. S se modifice pro'ramul anterior pentru un calculator cu numere introduse numai prin "utoane -cu cifre de la A la >/. Gu se pot introduce direct de la tastatur caractere *n campurile text - setEdita"le-false/ /.Se (or folosi trei panouri% un panou cu cele dou c1mpuri text un panou cu cele 1A "utoane pentru cifre si un panou cu cele trei "utoane pentru operatii. @ispunerea *n fiecare panou poate fi "?ridLaCout". @imensiunea su'erat pentru fereastra aplicatiei -+AA1:A/. Cele 1A "utoane (or fi create si adu'ate *ntr0un cicluB toate (or a(ea un sin'ur o"iect asculttor care determin sursa e(enimentului si deci cifra introdus% Strin' cifra6 --KButton/ -e(.'etSource-// /.'et,ctionCommand-/ 17. Pro'ram pentru afisarea unui formular folosit la *nre'istrarea unor clienti. 9ormularul contine trei componente .Te/tField *n care se introduc numele anul nasterii si adresa de e0mail si un "uton de sal(are a datelor intr0un fisier -"Sa(e"/. Pro'ramul nu permite memorarea *n fisier dec1t dac s0au introdus toate datele prin producerea de e(enimente ",ctionE(ent" la fiecare c1mp. S se adau'e apoi un "uton de anulare a datelor introduse p1n la un moment dat -"Cancel"/ cu ster'ere c1mpuri text. @up sal(are se ster'e tot ce s0a introdus anterior. C1mpurile text sunt precedate de c1te un text explicati( -reali4at ca etic.et .!abel/. Etic.etele sunt plasate *ntr0un panou -cu ase4are ?ridLaCout-A1// iar c1mpurile text *ntr0un alt panou -cu aceeasi ase4are/. Panoul cu etic.ete se plasea4 *n st1n'a panoului cu c1mpuri text -"Center" "East" *ntr0o ase4are "BorderlaCout" *n panoul principal/. 8n ca4 de eroare -date incomplete la sal(are / se (a afisa o caset de dialo' si se emite un semnal sonor. Sa se adau'e (alidarea datelor introduse cu semnalarea erorilor posi"ile. Eariante% a/ C1mpurile pot fi completate *n orice ordine "/ C1mpurile tre"uie completate *n ordinea nume an email. 1:. Pro'ram cu interfat 'rafic pentru (i4uali4area e(olutiei unei sti(e dup operatii !pus.$ si !pop$. Componente o"li'atorii% 0 .!ist ptr continutul sti(ei 0 .Te/tField ptr introducere cu(inte -cu actionare tastei Enter dup fiecare cu(ant/ si pentru afisare cu(inte scoase din sti(a 0 .1utton pentru operatia "pus." 0 .1utton pentru operatia "pop" 1<. Pro'ram care permite introducerea unui nume de director *ntr0un c1mp text si afisea4a lista fisierelor din director *ntr0o list de selectie .!ist Lista de selectie este reinitiali4at la fiecare modificare a c1mpului text -nu se prelun'este cu alte nume de fisiere/. Se (a adu'a pro'ramului anterior *nc un c1mp text *n care se (a afisa numele fisierului selectat de utili4ator -prin clic pe mouse/ din lista de selectie -cu toate fisierele din director/. 9iecare c1mp text este *nsotit de o etic.et -"@irectorC" "Selected"/. Cele dou c1mpuri si cele dou etic.ete se plasea4 *ntr0un panou separat -cu ase4are "?ridLCout"/. ,se4area *n fereastra principal este "9loDLaCout". 1=. Se (a modifica pro'ramul anterior prin inlocuirea campului text pentru fisierul selectat cu o alta lista .!ist la care se adau' fisierele selectate din prima list. Pentru a e(ita afisarea repetat a fisierelor selectate -la apsare si ridicare "uton mouse/ se (a introduce *n metoda !(alueC.an'ed" sec(enta % if ( e.get(alue)s*d+usting()) return; // ,istSelectionE-ent e 1>. Pro'ram pentru afisarea numelor fisierelor dintr0un director *ntr0o list .!ist cu un "uton de ster'ere a fisierelor selectate din list astfel ca *n lista afisat s rm1n numai fisierele dorite. Se (a actuali4a si un c1mp text cu numrul fisierelor rmase -cele afisate *n list/. 9isierele selectate nu (or fi sterse efecti( de pe disc ci numai din lista afisat. )A. Pro'ram pentru "na(i'are" prin sistemul de fisiere% la selectarea unui su"director din lista afisat se mut numele acestuia *n c1mpul text -cu nume director curent/ si se afisea4a *n .!ist continutul su. Pentru re(enire la directorul printe se afisea4 *n .!ist si numele acestuia su" forma "..". )1. Pro'ram care citeste cu(inte dintr0un fisier text le adau' la un dictionar ordonat de cu(inte si numr de aparitii si afisea4 dictionarul *n dou liste .!ist% o list de cu(inte si o list cu numere de aparitii. Pentru a urmri e(olutia listelor citirea unui nou cu(1nt din fisier se face numai la actionarea unui "uton -sau a unei taste/. Cu(1ntul citit din fisier este afisat si *ntr0un c1mp text .Te/tField. )). Pro'ram cu interfat 'rafic pentru afisarea metodelor unei clase *ntr0o list .!ist. Gumele clasei se introduce *ntr0un c1mp text. S se adau'e un "uton pentru afisarea metodelor mostenite de la superclasa sa direct. )+. S se defineasc% 0 o clas 9inder pentru cutarea *ntr0un director dat a fisierele care contin un sir dat si crearea unui dictionar cu c.ei nume de fisiere si cu (alori numrul de linii din fisier care contin sirul.Constructor cu ar'ument numele directorului. Metoda !find$ creea4 un dictionar si primeste un nume de director% Map find -Strin'/ 0 o clas MapKList pentru afisarea unui dictionar intr0un o"iect .!ist. Clasa extinde pe .!ist. Constructori cu ar'ument $ap si fara ar'ument. Metoda setMap-Map/ transmite un dictionar la o"iectul .!ist ptr afisare. 0 o clasa ?U89ind cu interfata 'rafica pentru 'asirea fisierelor dintr0un director dat care contin un sir dat si afisarea lor in. Se (a folosi un o"iect 9inder. La selectarea unui fisier se afisea4 *ntr0o 4on text .Te/tArea continutul fisierului selectat. Componente% .!ist cu numele fisierelor 'asite si prima linie care contine sirulB .Te/tField cu numele directoruluiB .Te/tField pentru introducerea sirului cutatB .Te/tArea pentru afisare continut fisier selectat din list B .1utton "9ind" pentru cutare fisiere si afisare pe ecran. )2. S se defineasc o clas 3Gode pentru un nod de ar"ore "inar cu date de tip +b-ect. S se defineasc o clasa 3ree pentru un ar"ore "inar de cautare cu ) constructori% fara ar' si cu ar'um de tip Comparator. Metode% contains add si4e toStrin' -sir ptr su"ar"orele cu radacina in acest nod prefixat si cu indentare / Eector to,rraC-/ FF o"tinut din sirul produs de "toStrin'" -un elem6 o linie/ Strin' toSa(e-/ FF sir cu (alorile din noduri in ordine infixata -SR@/ Strin' 'etPat. -O"#ectx / FF calea de la radacina la nodul cu (aloarea x Sa se defineasca o clasa 3reeEieD pentru (i4uali4area unui ar"ore 3ree folosind un o"iect KList si un camp text pentru adau'area de noi siruri la ar"orele existent. 8n alt camp text se afisea4a calea de la radacina la nodul selectat. La selectia unui nod din ar"ore se afisea4a intr0un al doilea camp text calea de la radacina la nodul selectat. Butonul "Sa(e" are ca efect sal(area sirurilor din ar"ore intr0un fisier text cu numele "3ree.txt" ordonate alfa"etic si separate prin spatii al"e. )7. S se defineasc o clas 3reeList pentru afisarea de ar"ori *ntr0un o"iect .!ist cu posi"ilitatea de expandareFcontractie noduri interne prin selectia nodului -clic pe mouse/. ,fisarea se face cu indentare diferit la fiecare ni(el din ar"ore asemntor cu cea din .Tree. Clasa Tree!ist este deri(ata din .!ist si implementea4 interfata !istSelection!istener. La selectarea unui nod din lista afisat se modifica starea sa -expandatFneexpandat/. S se utili4e4e un o"iect din clasa 3reeList pentru afisarea ar"orelui de fisiere dintr0un director cu nume introdus *ntr0un c1mp text -initial nodurile interne nu sunt expandate/. ):. S se defineasc o clas "9older" cu o functie "tCpes" pentru extra'erea tipurilor de fisiere dintr0un director dat -ca ar'ument in constructor/ *ntr0un o"iect MMap cu fiecare tip -extensie/ *mpreun cu lista numelor fisierelor de acel tip - tipul poate apare cu litere mari sau mici/. 9isierele fr tip apar *ntr0o list separat cu c.eia "GULL" -dac exist fisiere care nu contin un punct *n numele lor/. S se scrie un pro'ram cu interfat 'rafic pentru afisarea tipurilor -extensiilor/ de fisiere din o"iectul MMap creat *ntr0un .!ist si afisarea *ntr0o a doua list .!ist a numelor fisierelor de tipul selectat de operator. Butonul "Sa(e" sal(ea4 numele complet al fisierelor de un anumit tip *ntr0un fisier cu numele tipului si extensia "dir" -din lista a doua/. )<. S se defineasc o clas MapList deri(at din .!ist pentru afisarea continutului unui dictionar *ntr0un o"iect .!ist . Constructor cu ar'ument de tip $ap. Metode% "setMap -Map/" !Strin' toStrin'$. Pro'ram pentru crearea si afisarea unui dictionar cu numrul de fisiere din fiecare tip dintr0un director dat folosind un o"iect MapList. Gumele directorului se introduce *ntr0un c1mp text. 8nitial se foloseste continutul directorului curent. Un "uton !Sa(e$ permite sal(area datelor afisate *ntr0 un fisier text cu numele directorului si extensia !dir$. )=. S se defineasc o clas Map3a"le deri(at din .Table si care implementea4 interfata !istSelection!istener folosit pentru afisarea continutului unui dictionar *ntr0un ta"el cu dou coloane cu ordonarea dictionarului dup coloana selectat. Constructor cu ar'ument de tip $ap. Metode% "setMap -Map/" care creea4a model de ta"el si *l transmite la ta"elB "sort -int c/" pentru sortare ta"el dup o coloan dat OcP -folosind metoda ,rraCs.sort sau Collections.sort/. Pro'ram pentru crearea si afisarea unui dictionar cu numrul de fisiere din fiecare tip dintr0un director dat folosind un o"iect Map3a"le. Gumele directorului se introduce *ntr0un c1mp text. 8nitial se foloseste continutul directorului curent. )>. S se defineasc o clas 3a"leCalc pentru un ta"el de calcul *n care celulele pot contine text numere sau formule simple -sume pe linii sau pe coloane/. 9ormulele se recalculea4 automat la modificarea numerelor din celulele continute *n formule. La selectarea unei celule se afisea4 continutul sau (aloarea celulei *ntr0un c1mp text situat deasupra ta"elului. 8n celula din ta"el se afisea4 re4ultatul formulei iar formula se introduce se afisea4 si se editea4 *n acelasi c1mp text. Eariante% a/ clasa 3a"leCalc ca su"clas a clasei .TableB "/ 3a"leCalc ca su"clas a clasei .*anel. +A. Pro'ram cu interfat 'rafic SDin' pentru crearea interacti( si afisarea unui ar"ore *ntr0un o"iect .Tree. Godul rdcin este creat *nainte de afisare si contine de exemplu sirul !doc$. ,du'area unui nod nou de ctre utili4ator se face astfel% este selectat un nod din ar"ore si apoi se introduce *ntr0un c1mp text un sirB cu acest sir se crea4 un nod nou adu'at ca fiu nodului selectat -considerat ca nod printe/. S se adau'e apoi pro'ramului un "uton pentru eliminarea unui nod selectat din ar"ore. +1. S se defineasc% 0 O clasa 3Gode deri(at din De4ault$utableTree,ode cu o (aria"il suplimentara ""oolean expanded" si metode de modificare si de acces la aceasta (aria"il -care arat dac acest nod este expandat/. 0 O clasa 3reeList deri(at din .!ist si care implementea4 interfata !istSelection!istener cu un constructor ce are un ar'ument de tip 3Gode -rdcina ar"ore/ si care permite afisarea unui ar"ore *ntr0un o"iect .!ist. Clasa permite expandarea si contractia nodurilor selectate prin mouse -care nu sunt frun4e/. 0 O clas deri(at din .Frame care contine un c1mp text si un o"iect 3reeList pentru afisarea unui ar"ore de fisiere si su"directoare pentru directorul al crui nume s0a introdus *n c1mpul text. 8nitial se afisea4 continutul directorului curent. +). S se scrie un pro'ram cu interfat 'rafic care permite afisarea fisierelor dintr0un director dat si afisarea atri"utelor unui fisier selectat. Componente o"li'atorii% 0 .!ist pentru lista de fisiere 0 .Te/tField ptr nume director 0 .Te/tField ptr masca de filtrare -foloseste numai caracterul special N/ 0 .Te/tField ptr atri"ute fisier selectat 0 .Te/tField pentru criteriul de ordonare 0 .1utton pentru comanda afisrii -dup introducere nume director filtru si ale'ere criteriu de ordonare/. @ac un camp text nu contine nimic se consider c nu se filtrea4 sau nu se ordonea4 lista de fisiere. ++. S se defineasc o clas "9inder" care s caute *ntr0un fisier text toate liniile care contin un sir dat si s cree4e un dictionar a(1nd drept c.ei numere de linii si drept (alori c.iar liniile din fisier. Constructor cu ar'ument numele fisierului. Metode% find -Strin'/ si findTord -Strin' Strin' delim/ -numai cu(inte separate prin delimitatorii specificati la cutare/. S se scrie un pro'ram cu interfat 'rafic care permite 'sirea liniilor dintr0un fisier dat care contin un sir dat. Se (a folosi un o"iect de tip 9inder. Componente% 0 .!ist cu numerele liniilor 'site si primele +A caractere din linie 0 .Te/tField cu numele fisierului 0 .Te/tField pentru introducerea sirului cutat *n fisier 0 .Te/tField pentru afisarea liniei selectate din lista cu numere de linii 0 .1utton "9ind" pentru cutare *n fisier si afisare pe ecran