Sunteți pe pagina 1din 4

Ferestre Ferestre Suprafeele de afiare ale unei componente grafice sunt extensii ale clasei Container.

Dup cum am vzut, pentru implementarea unui applet s-au folosit suprafeele de afiare Applet i anel. ! aplicaie intependent are "ns nevoie de propriile ferestre pe care s fac afiarea componentelor grafice. entru dezvoltarea aplicaiilor care folosesc grafic se vor folosi clasele #indo$, Frame, Dialog.

Cont ain er Window

Panel

Applet

Fram e

Dialog

Clasa Window Clasa #indo$ este rar utilizat "n mod direct. %a permite crearea unor ferestre top- level care nu au c&enar i nici 'ar de meniuri. entru a crea ferestre mai complexe se utilizeaz clasele Frame i Dialog. Constructor #indo$ (Frame) Constructs a ne$ #indo$ initialized to an invisi'le state. *etode add+otif, () Creates t&e #indo$-s peer. dispose() . terge o fereastr de care nu mai este nevoie. /re'uie apelat pentru a eli'era resursele get/ool0it() 1eturns t&e tool0it of t&is frame. get#arningString() 2ets t&e $arning string for t&is $indo$. pac0() 1edimensioneaz fereastra specific corespunztor dimensiunilor componentelor sale s&o$() Afieaz fereastra specificat. 3n mod implicit, o fereastr nou creat nu este vizi'il. to4ac0() Fereastra curent este trimis "n spatele celorlate ferestre. toFront() Afieaz fereastra specificat deasupra celorlalte ferestre. Clasa Frame %ste o su'clas a clasei #indo$. Creeaz ferestre independente i funcionale, conin5nd 'are de meniuri. 6aria'ile C1!SS7A318C91S!1 D%FA9:/8C91S!1 %81%S3;%8C91S!1 7A+D8C91S!1 *!6%8C91S!1 +%81%S3;%8C91S!1 +#81%S3;%8C91S!1 +81%S3;%8C91S!1 S%81%S3;%8C91S!1 S#81%S3;%8C91S!1 S81%S3;%8C91S!1 /%</8C91S!1 #A3/8C91S!1 #81%S3;%8C91S!1 Constructori Frame () Constructs a ne$ Frame t&at is initiall, invisi'le. Frame(String) Constructs a ne$, initiall, invisi'le Frame $it& t&e specified title. 1

Ferestre *etode add+otif, () Creates t&e Frame-s peer. dispose() Disposes of t&e Frame. getCursor/,pe() 1eturn t&e cursor t,pe get3con3mage() 1eturns t&e icon image for t&is Frame. get*enu4ar() 2ets t&e menu 'ar for t&is Frame. get/itle() 2ets t&e title of t&e Frame. is1esiza'le() 1eturns true if t&e user can resize t&e Frame. paramString() 1eturns t&e parameter String of t&is Frame. remove(*enuComponent) 1emoves t&e specified menu 'ar from t&is Frame. setCursor(int) Set t&e cursor image to a predefined cursor. set3con3mage(3mage) Sets t&e image to displa, $&en t&is Frame is iconized. set*enu4ar(*enu4ar) Sets t&e menu'ar for t&is Frame to t&e specified menu'ar. set1esiza'le('oolean) Sets t&e resiza'le flag. set/itle(String) Sets t&e title for t&is Frame to t&e specified title. %xemplu - crearea i afiarea unei clase import =ava.a$t.>? pu'lic class /est#indo$ . pu'lic static void main(String args@A) . Frame f B ne$ Frame(C/est FrameC)? f.s&o$()? D D 2estionarul implicit al clasei #indo$ este 4order:a,out. Din acest motiv, "n momentul "n care fereastra este creat dar nici o component grafic nu este pus pe suprafaa ei, suprafaa de afiare a feretrei va fi nul. Acelai efect "l vom o'ine dac o redimenionm i apelm apoi metoda pac0() care determin dimeniunea suprafeei de afiare "n funcie de componentele grafice afiate pe ea. Se o'serv de asemenea c 'utoanele de maximizare, minimizare i "nc&idere ale ferestrei nu sunt funcionale. Aceasta deoarece, similar celorlalte 'utoane, ele genereaz nite evenimente care "ns nu sunt recepionate de o'iectul care reprezint fereastra deoarece acesta nu s-a "nregistrat ca asculttor. 3nterceptarea evenimentelor se face prin implementarea interfeei #indo$:istener i prin adugarea "n lista asculttorilor ferestrei c&iar a o'iectului care implementeaz fereastra. import =ava.a$t.>? import =ava.a$t.event.>? class Cadru extends Frame implements #indo$:istener . pu'lic Cadru(String titlu) . super(titlu)? t&is.add# indo$:istener(t&is)? D EEmetodele interfetei #indo$:istener pu'lic void $indo$!pened(# indo$%vent e) . D pu'lic void $indo$Closing(# indo$%vent e) . S,stem.exit(F)? D pu'lic void $indo$Closed(# indo$%vent e) . D pu'lic void $indo$3conified(# indo$%vent e) . D pu'lic void $indo$Deiconified(# indo$%vent e) . D pu'lic void $indo$Activated(# indo$%vent e) . D pu'lic void $indo$Deactivated(# indo$%vent e) . D D pu'lic class /est#indo$ . pu'lic static void main(String args@A) . Cadru $8main B ne$ Cadru(C/est FrameC)? 4utton c'8o0 B ne$ 4utton(G!HI)? $8main.add(c'8o0)? $8main.pac0()? $8main.s&o$()? 2

Ferestre D D Ferestre de dialog - Clasa Dialog /oate mediile grafice ofer i un tip special de ferestre destinate prelurii datelor de la utilizator. Acestea se numesc ferestre de dialog sau casete de dialog i sunt de dou tipuri J

modale J care 'loc&eaz accesul la fereastra printe - de exemplu, ferestre de introducere a unor date, de alegere a unui fiier "n vederea desc&ideriii, de selectare a unei opiuni, mesa=e de avertizare, etc

nemodale J care nu 'loc&eaz fluxul de intrare ctre fereastra printe - de exemplu, ferestrele de cutare a unui cuv5nt "ntr- un fiier. Crearea unor astfel de ferestre se realizeaz prin intermediul clasei Dialog. Clasa Dialog Constructori Dialog (Frame $8parent, 'oolean modal) Dialog (Frame $8parent, String titlu, 'oolean modal) Construiete o caset de dialog iniial invizi'il, av5nd ca printe fereastra $8parent. 6aloarea logic Kmodal L specific dac fereastra de dialog este modal sau nu. *etode add+otif, () Creates t&e frame-s peer. get/itle() 2ets t&e title of t&e Dialog. is*odal() 1eturns true if t&e Dialog is modal. is1esiza'le() 1eturns true if t&e user can resize t&e frame. paramString() 1eturns t&e parameter String of t&is Dialog. set1esiza'le('oolean) Sets t&e resiza'le flag. set/itle(String) Sets t&e title of t&e Dialog. %xemplu Dialog d B ne$ Dialog($8main, CFereastra dialogC, true)? anel 'utoane B ne$ anel()? 'utoane.set:a,out(ne$ Flo$:a,out())? 'utoane.add(ne$ 4utton(CDAC))? 'utoane.add(ne$ 4utton(C+9C))? d.add(CSout&C, 'utoane)? d.add(CCenterC, ne$ :a'el(CSigur doriti sa faceti astaMC))? d.setSize(ne$ Dimension(NFF,OFF))? d.s&o$()? Crearea de dialoguri este relativ simpl. *ai complicat este "ns modul "n care se implementeaz comunicarea "ntre fereastra de dialog i aplicaie, pentru ca aceasta din urm s poat folosi datele introduse (sau opiunea specificat) "n caseta de dialog. %xist dou a'ordri generale J

o'iectul care reprezint dialogul poate s capteze evenimentele de la 'utoanele ferestrei i de la controalele de pe suprafaa sa i s s seteze valorile unor parametri ai aplicaiei "n momentul "n care dialogul este "nc&eiat sau o'iectul care creeaz dialogul (fereastra printe) s se "nregistreze ca asculttor al evenimentelor de la 'utoanele care determin "nc&eierea dialogului, iar o'iectul dialog s ofere metode pu'lice prin care datele introduse s fie preluate din exterior.

!'sJ A doua metod este mai uzual. Clasa FileDialog ac&etul =ava.a$t pune la dispoziie i un tip de fereastr de dialog folosit pentru "ncrcarea E salvarea fiierelor. Clasa FileDialog are un comportament comun dialogurilor de acest tip de pe ma=oritatea sistemelor, dar forma sa specific "n care va fi afiat este specific platformei pe care ruleaz aplicaia. 6aria'ile :!AD /&e file load varia'le. SA6% /&e file save varia'le. 3

Ferestre Constructor FileDialog (Frame, String) Creates a file dialog for loading a file. FileDialog(Frame, String, int)Creates a file dialog $it& t&e specified title and mode. *etode add+otif, () Creates t&e frame-s peer. getDirector,() 2ets t&e director, of t&e Dialog. getFile() 2ets t&e file of t&e Dialog. getFilenameFilter() 2ets t&e filter. get*ode() 2ets t&e mode of t&e file dialog. paramString() 1eturns t&e parameter String of t&is file dialog. setDirector,(String) Set t&e director, of t&e Dialog to t&e specified director,. setFile(String) Sets t&e file for t&is dialog to t&e specified file. setFilenameFilter(FilenameFilter) Sets t&e filter for t&is dialog to t&e specified filter. %xempleJ FileDialog fO B ne$ FileDialog($8main, GAlegere fisierI, FileDialog.:!AD)? EEdialog pentru incarcarea unui fisier FileDialog fN B ne$ FileDialog($8main, GSalvare fisierI, FileDialog.SA6%)? EEdialog pentru salvarea unui fisier fO.setDirector,(G.E I)? EEdirectorul curent fN.setDirector,(GE I)? EEdirectorul radacina fO.setFile(G>.=ava I)? fN.setFile(Itest.&t ml I)?EEfisierul care apare initial fO.setFile+ameFilter(ne$ PavaFilter())? class PavaFilter implements FilenameFilter . pu'lic 'oolean accept(File dir, String numeFis) . return (numeFis.ends# it&(G.=ava I))? D D !'sJ :a crearea unui o'iect FileDialog acesta nu este implicit vizi'il. Dac afiarea sa se face cu s&o$() caseta de dialog va fi modal. Dac afiarea se face cu set6isi'le(true) va fi nemodal. Dup selectarea unui fiier ea va fi fcut automat invizi'il.

S-ar putea să vă placă și