• Embed Doc
  • Readcast
  • Collections
  • CommentGo Back
Download
 
Programare Java
Curs – 10
MANAGEMENTUL UNEI INTERFETE GRAFICEAspectul de pana acum al unei interfete grafice AWT era oarecum relativ -redimensionarea ferestrei putand modifica intreaga dispunere in fereastra . Aceastamaleabilitate a interfetei grafice apare in Java datorita posibilitatii sale de a rula pediferite platforme care trateaza diferit elementele componente ale unei interfetegrafice .Pentru a introduce un control mai strict asupra aspectului interfetei noastre Java ne pune la dispozitie pentru pachetul AWT un numar de 5 administratori de dispunere .DISPUNEREA COMPONENTELOR UNEI INTERFETEUn administrator de dispunere determina modul in care vor fi aranjate componenteleunui contatiner . Administratorul implicit al Java este clasa FlowLayout . Ea permitedispunerea secventiala a obiectelor , de la stanga la dreapta si de sus in jos .Pachetul AWT poate folosi inca patru administratori : GridLayout , BorderLayout ,CardLayout si GridBagLayout .Pentru a crea un administrator pentru un container se creaza o instanta a claseicontainer folosind o instructiune de tipul :FlowLayout administrator=new FlowLayout();Acest administrator nou creat trebuie apoi declarat ca administrator pentru container cu ajutorul metodei setLayout() . Administratorul de dispunere trebuie stabilit inaintede a adauga componente containerului . Daca nu este stabilit un administrator explicitatunci apare automat cel de dispunere secventiala ( FlowLayout ) .In exemplul de mai jos avem inceputul unui applet care foloseste un administrator dedispunere : public class Inceput extends java.applet.Applet {FlowLayout ad=new FlowLayout(); public void init() {setLayout(ad);}}ADMINISTRATORUL DE DISPUNERE SECVENTIALA ( FlowLayout )Daca foloism constructorul FlowLayout() fara argumente toate componentele de pefiecare rand vor fi automat centrate . Daca vrem ca alinierea sa se faca explicit trebuiesa utilizam ca argument pentru constructor una dintre variabilele de clasaFlowLayout.LEFT sau FlowLayout.RIGHT sau chiar FlowLayout.CENTER .
 
In mod automat administratorul de dispunere secventiala lasa un spatiu de trei pixeliintre componente pe un rand si tot cate trei pixeli intre randuri . Daca vrem samodificam aceste caracteristici putem folosi un constructor de genul :FlowLayout(int, int, int)Acesta primeste ca argumente :-alinierea ( o variabila de clasa )-spatiul in pixeli dintre componente pe orizontala-spatiul in pixeli pe verticala intre liniiADMINISTRATORUL DE DISPUNERE TABELARA ( GridLayout )Acesta aranjeaza componentele intr-un tabel de randuri si coloane . Componentelesunt adaugate incepand cu celula aflata cel mai in stanga pe primul rand si continuandspre dreapta . In continuare se va trece la urmatoarea linie si tot asa mai departe .Clasa care implementeaza acest administrator este GridLayout . Un constructor alacestei clase primeste doua argumente : numarul de linii si numarul de coloane altabelului in care se va imparti containerul .Exista si posibilitatea de a utiliza inca doua argumente care sa exprime spatiul peorizontala si pe verticala intre componente . Spatiul implicit intre componenteleadministrate in acest mod este 0 pixeli pe ambele directii .Trebuie facuta neaparat o observatie legata de acest administrator de dispunere :componentele vor ocupa totdeauna intregul spatiu al celulei in care trebuie sa seintegreze .In exemplul de mai jos avem un applet ce creaza un tabel cu 9 celule spatiate la 10 pixeli atat pe verticala cat si pe orizontala :import java.awt.*; public class Tabelare extends java.applet.Applet {GridLayout tabelul=new GridLayout(3,3,10,10);Button b1=new Button("Steaua");Button b2=new Button("Dinamo");Button b3=new Button("Rapid");Button b4=new Button("National");Button b5=new Button("Bacau");Button b6=new Button("Astra");Button b7=new Button("Otelul");Button b8=new Button("Sportul");Button b9=new Button("Petrolul"); public void init() {setLayout(tabelul);add(b1);add(b2);add(b3);add(b4);
 
add(b5);add(b6);add(b7);add(b8);add(b9);}}ADMINISTRATORUL DE DISPUNERE MARGINALA ( BorderLayout )Administratorul BorderLayout imparte un container in 5 zone : nord , sud , est , vest sicentru . In cadrul acestei dispuneri componentele din cele patru directi de baza vor ocupa spatiul pe care il necesita iar centrul va primi restul de spatiu .Exista doua versiuni ale constructorului clasei BorderLayout : fara nici un parametrusau cu doi parametri . Prima varianta creaza o dispunere fara spatiere intrecomponente in timp ce a doua varianta permite specificarea distantei in pixeli peorizontala si pe verticala dintre componente .Dupa crearea si aplicarea administratorului de acest tip adaugarea componentelor incontainer se face cu o metoda de genul :add(string, componenta);Primul argument are valori intre : "North" , "South" , "East" , "West" si "Center" . Aldoilea argument este chiar componenta care trebuie adaugata .Programul de mai jos implementeaza un administrator de dispunere marginala :import java.awt.*; public class Margini extends java.applet.Applet {BorderLayout b=new BorderLayout(10,15);Button nord=new Button("Nord");Button sud=new Button("Sud");Button est=new Button("Est");Button vest=new Button("Vest");Button centru=new Button("Centru"); public void init() {setLayout(b);add("North",nord);add("South",sud);add("East",est);add("West",vest);add("Center",centru);}}COMBINAREA ADMINISTRATORILOR DE DISPUNERE
of 00

Leave a Comment

You must be to leave a comment.
Submit
Characters: ...
You must be to leave a comment.
Submit
Characters: ...