Sunteți pe pagina 1din 13

Java 1 Modul 6

6.1 Ce este o interfata grafica?


 
Cu siguranta stiti deja ce este o interfata grafica. Pe numele ei GUI (Graphical User Interface), interfata grafica reprezinta
un mod elegant de interactiune a unui sistem cu utilizatorul. Pana acum toate aplicatiile software create de noi afisau mesaje
sau primeau informatie din consola. Consola reprezinta primul mod dezvoltat vreodata prin care un program afisa sau primea
informatii de la utilizator. Dupa cum deja ati vazut, in consola nu se lucreaza decat cu siruri de caractere, ele reprezentant
atat datele de intrare (care trebuiesc procesate de program) cat si datele de iesire (rezultatul executiei aplicatiei);
Consola este inca folosita si va ramane in continuare de o utilitate importanta pentru anumite tipuri de aplicatii. De
exemplu aplicatiile de tip server in general preiau informatie si o afisaza intr-o consola. Acest lucru se intampl deoarece acest
mod de lucru permite pastrarea neocupata si utilizarea de cat mai putina memorie interna (RAM); Serverul, care este o
aplicatie ce ofera servicii printr-un proces daemon (ce ruleaza constant pe o masina asteptand conexiuni de la clienti) nu are
nevoie in principal de afisari de informatie pe computerul care ruleaza. Singurele modificari care pot fi facute poate reprezinta
configurarile si afisarea permanenta a statusului de executie; Pentru acest lucru nu este nevoie de mai mult decat consola;
Totusi, pentru un utilizator neexperimentat (care nu lucreaza in domeniul IT), consola poate parea greoaie la utilizare. De
aceea intergata grafica este apreciata de majoritatea utilizatorilor de computere, devenind in unele cazuri chiar obiect
comercial care determina numarul de clienti (utilizatori); De exemplu in cazul Microsoft Windows, accentul s-a pus din ce in ce
mai mult pe dezvoltarea unei interfete grafice aspectuase in detrimentul vitezei de executie sau al resurselor folosite
(memorie, procesor ... etc);
Interfata grafica este formata din imagini, text si componente care interactioneaza cu utilizatorul prin evenimente;
Componentele reprezinta entitati care interactioneaza cu utilizatorul: butoane, meniuri, scrollbars, ferestre, panouri ..etc.
Orice aplicatie care este destinata folosirii de catre persoane fara experienta in domeniu IT, dar care sa poata invata usor
modul de utilizare al unei aplicatii trebuie sa aiba ca mod de interactiune o interfata grafica.
 

6.2 Componente si modul de functionare


 
Componentele reprezinta entitatile prin care utilizatorul interactioneaza cu aplicatia. Din punctul de vedere al
programaturului , orice componenta este un obiect; Fiind obiecte, acestea sunt create fiecare cu ajutorul unei clase, avand
atribute si comportamente;
Un aspect important al oricarei componente este urmatorul: Fiecare dintre acestea poate fi plasata pe un sistem de axe
Cartezian. In felul acesta componenta se afla cu originea in coltul din stanga sus, iar in jos si la dreapta axele cresc; Sistemul
de masurare al interfetelor grafice este in pixeli. Pixelul este cea mai mica unitate (indivizibila) de os singura culoare a unei
imagini
Exemple de componente pe care le vom folosi:

 applet
 fereastra
 buton
 bara de meniu
 meniu
 item de meniu
 buton de selectie checkbox
 buton de selectie radio
 panou
 ferestra de dialog
 bara de defilare (scrollbar)
 eticheta

 
Componentele se divid in doua categorii: containere si non-containere; Containrerele sunt acele componente care pe
interfata lor pot sustine alte componente; De exemplu fereastra este un containter, deoarece pe ea vom amplasa diverese ale
componente cum ar fi butoane, meniuri ...etc;
Primele titpuri de interfete grafice pe care le vom crea sunt cu ajutorul java.awt.*;
 

6.3 Appleturile - java.applet


 
Appleturile reprezinta programe scrise cu Java. Acestea, spre deosebire de alte programe nu sunt de sine statatoare (nu
au o metoda main); Ele se folosesc de metoda principala a altor programe pentru a se executa (cel mai des, de un web
browser); Appleturile sunt cele mai simple aplicatii cu interfata grafica scrise cu Java. Pentru a dezvolta astfel de programe
folosim clasa Applet din pachetul java.applet;

1
Un applet are definite doua metode pe care va trebui sa le suprasriem in vederea modificarii interfetei grafice a acestuia;
Metodele sunt definite in clasa Applet pe care va trebui sa o mosteneasca orice clasa care defineste un applet;

1. paint(Grpagics g)
2. init()

Metoda paint() va fi suprascrisa pentru a desena folosind diferite comportamentele ale obiectului Graphics pe interfata
appletului;
Metoda init() va fi suprascrisa atunci cand trebuie sa adauga componente pe applet;
Aceste functii ale metodelor paint() si init() nu trebuiesc incurcate; In paint() nu pot fi adaugate componente asa cum in
init() nu se poate desena pe interfata appletului;
Clasa Graphics defineste uramtoarele comportamente cu ajutorul carora putem modifica interfata:

 drawLine(int x1,int y1, int x2,int y2) - pentru desenarea unui segment de dreapta definit de punctele de coordonate
A(x1,x2) si B(y1,y2);
 drawString(String line, int x,int y) - pentru desenarea unui sir de caractere la coordonarele x,y
 drawRect(int x,int y, int l,int h) - pentru desenarea unui dreptunghi cu coltul stanga sus la coordonatele x,y si o
anumita latime l si inaltime h
 drawOval(int x,int y, int l,int h) - pentru desenarea unei elipse perfect icadrata de dreptunghiul cu coordonatele date
ca in metoda drawRect
 setColor(Color c) - pentru setarea unei culori de desenare

2
3
4
 

6.4 Definirea culorilor - clasa Color


 
Intr-un sistem digital culorile se definesc prin standardul aditiv RGB (Red Green Blue); Acest standard defineste culori prin
amestecul unor cantitati din fiecare dintre cele trei culori rosu, verde si albastru; Prin amestecul tuturor in cantintate maxima
rezulta alb, iar prin absenta completa a culorilor rezulta negru;
Fiecarei culori ii este rezervat un byte de informatie adica valori intre 0 si 255; Astfel o culoare poate fi reprezentata cu
clasa Color prin definirea instantelor cu urmatorul construcotor:

 Color(int red,int green, int blue)

De exemplu: Color c1 = new Color(255,0,0); // defineste rosu aprins


Fiecare parametru poate lua valori intre 0 si 255, reprezentant cantitatile de culoare care se amesteca;
Exista posibilitatea de a defini culori cu transparenta; Pentru asta se foloseste construcotrul cu patru parametrii, ultimul
reprezentand transparenta care ia de asemenea valori intre 0 si 255;

 Color(int red,int green,int blue,int alpha)

Culorile cunoscute sunt deja definite si reprezinta constante in clasa Color; Acestea pot fi accesate prin dereferentiere:

 Color.red
 Color.blue
 Color.yellow
 Color.green
 Color.violet

Culorile se modifica pe o instanta Graphics prin metoda setColor();

 g.setColor(Color.red) // prin folosirea constantei


 g.setColor(new Color(200,100,0)) // prin definirea unei culori cu ajutorul unuia dintre constructori

5
 
 

6.5 Butoane - java.awt.Button


 
Cu ajutorul clasei Button din pachetul java.awt putem defini componente de tip buton;
Constructori:

 Button()
 Button(String s)

Exemple:

 Button b1 = new Button();

6
 Button b2 = new Button("Textul de pe buton");
 Button b3= new Button(new String("Textul de pe buton"));

Adaugarea oricarei componente pe Applet se face cu metoda add(Component c) mostenita din clasa Applet;
Exemplu:
Button b = new Button("Butonul meu");
add(b); // adaugarea butonului
Nu uitati ca adaugarea oricarei componente se face prin suprascrierea metodei init()
 

6.6 Manageri de positionare (Layout Managers)


 

7
Un manager de pozitionare reprezinta un obiect definit de o clasa care se ocupa de modul in care sunt aranjate
compoentele pe un container; (De exemplu putem defini un mangager de poziionare pentru a amplasa intr-un anumit fel un
buton pe un applet);
Vom invata trei tipuri de manageri de pozitionare:

1. FlowLayout
2. BorderLayout
3. GridLayout

FlowLayout este clasa ce pozitioneaza componentele la dreapta, la stanga sau centrat sus; BorderLayout ii pozitioneaza in
functie de marginea containerului, iar GridLayout in functie de un grid imaginar cu coodronate date la construire;
Orice manager se pozitionare se seteaza cu ajutorul metodei setLayout() mostenita din clasa Applet;
Exemplu: setLayout(new FlowLayout());
Clasa FlowLayout are constante care definesc locatia unde sunt aranjate componentele:

 FlowLayout.LEFT
 FlowLayout.CENTER
 FlowLayout.RIGHT

Exemplu: setLayout(new FlowLayou(FlowLayout.LEFT))


Daca nu se precizeaza constanta, atunci ele sunt default setate CENTER;
Clasa BorderLayout are cinci constante care sunt specifice la adaugarea fiecarei componente; Managerul se seteaza
setLayout(new BorderLayout()) dupa care se specifica o constanta la adaugarea unei componente din cele 5:

 BorderLayout.CENTER
 BorderLayout.NORTH (pentru partea de sus)
 BorderLayout.SOUTH (pentru partea de jos)
 BorderLayout.WEST (pentru stanga)
 BorderLayout.EAST (pentru dreapta)

Exemplu:
add(b, BorderLayout.NORTH) // unde b este un buton spre exemplu
Pentru GridLayout cosntrucotrul este GridLayout(int a,int b); a reprezinta numarul de linii si b numarul de coloane ale
gridului; O componeta se adauga dupa setarea gridului cu metoda add cu un singur parametru si va completa intotdeauna
urmatoarea casuta libera a gridului de la stanga la dreapta de sus in jos;

8
9
 
 

6.7 Panouri
 
Panourile sunt componente de tip container. Acestea sunt folosite in formatarea interfetei grafice prin adaugarea pe alte
containere in influenta diferitilor manageri de pozitionare; Clasa Panel din java.awt defineste aceste componente dupa
constructorii:

 Panel();
 Panel(LayoutManaget lm)

10
 
 

6.8 Componente text


 
Componentele text sunt folosite pentru a-i permite utilizatorului sa introduca siruri de caractere; Exista doua tipuri de
componente text:

 TextField (pentru texte de o singura linie)


 TextArea (pentru texte pe mai multe linii)

Cele doua clase sunt parte a pachetului java.awt;


TextField se construieste:

11
 TextField(int c) // c reprezinta dimensiunea in latime a textfield-ului

TextArea se construieste:

 TextArea(int r,int c) // r,c reperezentand randurile si coloanele componentei text

Exemple:

 TextArea ta = new TextArea(5,7);


 TextField tf = new TextField(10);

Continutul campului text se poate lua cu ajutorul metodei:

 getText() - care returneaza un String

Constinutul poate fi setat cu ajutorul setterului:

 setText(String s)

Pentru TextArea se poate adauga text la continutul actual prin metoda append(String s);

12
13

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