Curs 8 Slides
-
Author
danny-alexandru-norocia -
Category
Documents
-
view
264 -
download
0
Embed Size (px)
description
Transcript of Curs 8 Slides
-
CREAREA DE INTERFETE GRAFICE PENTRU APPLETURI
Curs 8 - Java
-
Curs 8 - Java
Deoarece Java este un limbaj independent de platforma, AWT ofera modalitatea de a proiecta o interfata care sa fie la fel reprezentata si cu aceleasi caracteristici pe orice sistem pe care ar rula. Folosind pachetul AWT avem de luat in calcul mai multe elemente care compun o interfata grafica: - componente - orice element poate fi practic plasat pe o interfata utilizator:
butoane, liste derulante, meniuri popup, casete de validare sau campuri de text.
- containere - acestea reprezinta de fapt componente care pot contine la randul lor alte componente. Un exemplu de container este chiar fereastra Applet, iar alte exemple ar putea fi panouri, casete de dialog sau ferestre independente.
- administratori de dispunere - acestia sunt de fapt niste obiecte care definesc modul de dispunere a componentelor intr-un container. Un astfel de administrator nu este un element propriu-zis vizual, nu vedem pe ecran un astfel de obiect, efectele sale sunt insa vizibile.
-
Curs 8 - Java
Exista doi pasi care trebuie urmati pentru a adauga o componenta la un container: - crearea componentei respective - apelarea metodei add() a containerului pentru componenta respectiva Datorita faptului ca un Applet este un container putem folosi metoda add() in cadrul unui applet pentru a adauga o componenta direct in fereastra Applet.
ADAUGAREA DE COMPONENTE LA UN CONTAINER
Ex. Button butonNou=new Button("Apasa aici"); add(butonNou);
-
Curs 8 - Java
Adaugarea componentei nu duce automat si la desenarea ei pe ecran. Ea va fi afisata doar dupa apelul metodei paint() a containerului; putem folosi si metoda repaint() pentru a forta afisarea unor noi componente eventual adaugate. Pentru crearea componentelor in applet, in mod uzual, se foloseste metoda init(). In exemplul urmator avem un buton in cadrul unui applet, acest buton are un text afisat pe el si va fi afisat propriu-zis doar dupa apelarea metodei paint():
ADAUGAREA DE COMPONENTE LA UN CONTAINER
import java.awt.*; public class Buton extends java.applet.Applet { String mesaj="Numele butonului. Nu apasati"; Button butonNou=new Button(mesaj); public void init() { add(butonNou); } }
-
Curs 8 - Java
O eticheta este de fapt cea mai simplista componenta a unei interfete grafice, ea fiind implementata prin clasa Label. Folosirea etichetelor pentru text apare in locul metodei drawString() din mai multe cauze: - o eticheta este desenata automat si nu are nevoie de tratare explicita de catre
metoda paint() - etichetele pot fi dispuse in fereastra conform cu administratorii de dispunere
folositi si nu este nevoie de o pozitionare prin coordonate date in pixeli
ETICHETE
Pentru a crea o eticheta putem folosi mai multe metode: - Label() - aceasta instructiune creaza o eticheta goala, cu textul aliniat automat la
stanga - Label(sir) - creaza o eticheta cu textul specificat prin variabila de tip String,
alinierea textului fiind la stanga - Label(sir,argument) - creaza o eticheta cu sirul dat ca text si cu alinierea indicata de
argumentul al doilea Pentru a seta alinierea se pot folosi variabilele de clasa: Label.RIGHT, Label.LEFT si Label.CENTER.
-
Curs 8 - Java
Pentru a modifica textul etichetei dupa crearea acesteia putem folosi metoda setText(sir); noul sir dat ca parametru este afisat dupa reimprospatarea componentei. O alta metoda folositoare este si getText() care ne returneaza valoarea textului etichetei.
ETICHETE
import java.awt.*; public class Etichete extends java.applet.Applet { Label stanga=new Label("Aliniat la stanga"); Label dreapta=new Label("Aliniat la dreapta",Label.RIGHT); Label centrat=new Label("Aliniat pe centru",Label.CENTER); Font f=new Font("Helvetica",Font.BOLD,18); GridLayout dispunere=new GridLayout(3,1); public void init() { setFont(f); setLayout(dispunere); add(stanga); setForeground(Color.green); add(centrat); setForeground(Color.blue); add(dreapta); } }
-
Curs 8 - Java
Pentru a crea un buton trebuie sa urmam una dintre caile urmatoare: fie apelam constructorul Button() care ne creaza un buton fara nici un text fie apelam constructorul cu un argument de tip String care este de fapt chiar textul butonului. Odata creat acest buton ii mai putem modifica textul cu ajutorul metodei setLabel() sau putem folosi metoda getLabel() pentru a afla textul acestui buton.
BUTOANE
import java.awt.*; public class Casetofon extends java.applet.Applet { Button inapoi=new Button("Inapoi"); Button inainte=new Button("Inainte"); Button play=new Button("Play"); Button stop=new Button("Stop"); Button pauza=new Button("Pauza"); public void init() { add(inapoi); add(inainte); add(pauza); add(stop); add(play); } }
-
Curs 8 - Java
Aceste componente sunt in practica niste casete patrate care pot fi bifate sau nu cu ajutorul unui clic. Pentru a crea o caseta de validare neexclusiva putem folosi unul dintre urmatorii constructori: - Checkbox() - care creaza o caseta de validare fara eticheta si nevalidata (nebifata) - Checkbox(sir) - care creaza o caseta de validare cu eticheta fiind sirul dat ca
parametru si nevalidata
Odata creat un obiect Checkbox se foloseste metoda setState(boolean) pentru a modifica starea acestuia: valoarea true pentru a bifa caseta si valoarea false pentru a debifa caseta de validare. Metoda getState() returneaza o valoare Boolean care ne indica starea de validare a casetei la momentul respectiv.
CASETE DE VALIDARE
-
Curs 8 - Java
CASETE DE VALIDARE
import java.awt.*; public class Bifare extends java.applet.Applet { Checkbox caseta1=new Checkbox("Volvo"); Checkbox caseta2=new Checkbox("BMW"); Checkbox caseta3=new Checkbox("Mercedes"); Checkbox caseta4=new Checkbox("Audi"); Checkbox caseta5=new Checkbox("Dacia"); public void init() { add(caseta1); add(caseta2); add(caseta3); add(caseta4); add(caseta5); caseta5.setState(true); } }
-
Curs 8 - Java
In cazul in care dorim sa grupam mai multe casete de validare intr-un grup, pentru a realiza niste butoane radio vom crea un obiect CheckboxGroup: CheckboxGroup grup=new CheckboxGroup(); Pentru a crea o caseta de validare care apartine unui grup vom folosi o instructiune de genul: Checkbox(sir,grupCaseteValidare,boolean); In cazul in care vrem sa modificam starea de validare a unui buton radio dintr-un grup putem folosi metoda setCurrent(validare). Putem folosi si metoda getCurrent() pentru a intoarce valoarea curenta de bifare a unei casete de validare. Obs: Checkbox(sir,grupCaseteValidare,boolean) se poate inlocui cu Checkbox(sir,boolean,grupCaseteValidare)
CASETE DE VALIDARE
-
Curs 8 - Java
CASETE DE VALIDARE
import java.awt.*; public class Bifare extends java.applet.Applet { CheckboxGroup grup=new CheckboxGroup(); Checkbox caseta1=new Checkbox("Volvo",grup,false); Checkbox caseta2=new Checkbox("BMW",grup,false); Checkbox caseta3=new Checkbox("Mercedes",grup,true); Checkbox caseta4=new Checkbox("Audi",grup,false); Checkbox caseta5=new Checkbox("Dacia",grup,false); public void init() { add(caseta1); add(caseta2); add(caseta3); add(caseta4); add(caseta5); } }
-
Curs 8 - Java
Acestea sunt create cu ajutorul clasei Choice si permit alegerea unei singure optiuni dintr-o lista derulanta pe verticala. Pentru a crea o astfel de lista trebuie mai intai sa cream un obiect Choice care va pastra lista propriu-zisa: Choice lista=new Choice(); Elementele listei se adauga la aceasta prin metoda addItem(sir) a obiectului de tip Choice. Metoda addItem() poate fi folosita si dupa ce lista noastra a fost deja adaugata la un container. Obs: Metoda addItem() se poate inlocui cu metoda add() a clasei Choice.
LISTE DE OPTIUNI
-
Curs 8 - Java
import java.awt.*; public class ListaSelectie extends java.applet.Applet { Choice lista=new Choice(); Label eticheta=new Label(Care echipa credeti ca va castiga Europa League in 2012:"); public void init() { add(eticheta); lista.addItem("Manchester City"); lista.addItem("Manchester United"); lista.addItem("Schalke 04"); lista.addItem("Steaua Bucuresti"); add(lista); } }
LISTE DE OPTIUNI
-
Curs 8 - Java
In cadrul clasei Choice exista mai multe metode folositoare pentru controlul asupra unei liste de selectie: - getItem(int) - aceasta metoda returneaza textul optiunii din pozitia specificata de
argumentul intreg, prima optiune avand pozitia 0 - countItems() - intoarce numarul de elemente ale listei - getSelectedIndex() - intoarce pozitia elementului care este selectat la acel moment - getSelectedItem() - intoarce textul elementului selectat la acel moment - select(int) - selecteaza elementul aflat pe pozitia specificata de argument - select(String) - selecteaza primul element din lista care are sirul dat ca parametru
drept text
LISTE DE OPTIUNI
-
Curs 8 - Java
Campurile de text dau posibilitatea utilizatorului sa poata introduce propriul text in program. Aceste componente ale interfetei sunt implementate cu ajutorul clasei TextField. Pentru a crea un camp de text putem folosi una dintre urmatoarele patru variante: - TextField() - va crea un camp gol si fara o latime specificata - TextField(int) - va crea un camp gol care are o latime pentru a afisa un numar de
caractere specificat de argumentul intreg - TextField(String) - creaza un camp de text completat cu sirul dat ca parametru - TextField(String,int) - creaza un camp completat cu sirul dat ca parametru si cu
latimea data de argumentul intreg
CAMPURI DE TEXT
-
Curs 8 - Java
In cazul in care vrem ca textul introdus de la tastatura de utilizator sa nu fie vizibil in clar - de exemplu in cazul parolelor - putem folosi o metoda numita setEchoChar(char) care va primi ca argument un caracter ce trebuie inclus intre apostroafe (de exemplu: '@'). Clasa TextField are si ea cateva metode foarte des folosite pentru a controla campurile de text: - getText() - returneaza textul continut de camp - setText(String) - completeaza campul de text cu sirul specificat ca argument - setEditable(boolean) - determina daca respectivul camp de text poate fi sau nu
modificat de utilizator. Argumentul false duce la blocarea campului pentru introducerea de text iar argumentul true permite introducerea de text din partea utilizatorului
- isEditable() - returneaza starea unui camp de text printr-o valoare booleana; daca respectivul camp de text poate fi editat va returna true iar daca nu este editabil va returna false
CAMPURI DE TEXT
-
Curs 8 - Java
import java.awt.*; public class CampuriText extends java.applet.Applet { Label eticheta1=new Label("Nume: "); TextField nume=new TextField(30); Label eticheta2=new Label("Prenume: "); TextField prenume=new TextField(30); Label eticheta3=new Label("Parola: "); TextField parola=new TextField(30); public void init() { add(eticheta1); add(nume); add(eticheta2); add(prenume); add(eticheta3); parola.setEchoChar('@'); add(parola); } }
CAMPURI DE TEXT
-
Curs 8 - Java
Pentru a crea o zona de text trebuie sa folosim unul dintre cei patru constructori de mai jos: - TextArea() - creaza o zona de text goala cu inaltime si latime nespecificate - TextArea(int,int) - creaza o zona goala care contine numarul de linii dat de primul
argument si are latimea data de numarul de caractere care este specificat de cel de-al doilea argument intreg
- TextArea(String) - creaza o zona de text care contine sirul dat ca argument - TextArea(String,int,int) - creaza o zona de text care contine sirul dat ca argument,
numarul de linii dat de primul argument intreg si lungimea unei linii de atatea caractere cat reprezinta al doilea argument intreg
Zonele de text poseda si ele unele metode proprii foarte utile: - insert(String,int) - insereaza sirul dat ca parametru la pozitia data de argumentul
intreg; prima valoare a indexului este 0. - replace(String,int) - inlocuieste textul de la pozitia indicata de argumentul intreg cu
sirul dat ca prim argument.
ZONE DE TEXT
-
Curs 8 - Java
import java.awt.*; public class ZonaText extends java.applet.Applet { String sir="Text introdus pentru a arata modalitatea de a introduce \ntext predefinit in cadrul unei zone de text create in limbajul Java."; TextArea zona; public void init() { zona=new TextArea(sir,10,70); add(zona); } }
ZONE DE TEXT
Clasa TextArea poseda si metodele setText(), getText(), setEditable() si isEditable().
-
Curs 8 - Java
Aceste componente sunt create cu ajutorul clasei List si sunt asemanatoare cu listele de optiuni avand de fapt doar doua diferente majore: - o lista derulanta poate fi configurata astfel incat sa poata fi selectate mai multe
optiuni - aceste liste se prezinta ca o zona de text in care sunt afisate mai multe optiuni iar
daca lista contine mai multe optiuni decat pot fi afisate atunci apare bara de scroll Lista derulanta este definita prin crearea unui obiect List la care apoi se adauga elementele propriu-zise ale listei. Pentru a realiza acest lucru putem folosi unul dintre constructorii de mai jos: - List() - creaza o lista vida care permite o selectie unica de element - List(int, boolean) - creaza o lista derulanta care are un numar de elemente vizibile
la un moment dat specificat prin argumentul intreg iar argumentul boolean indica daca pot fi selectate mai multe optiuni - in cazul posibilitatii selectarii mai multor optiuni argumentul trebuie sa aiba valoarea true
Odata creat un obiect List ii folosim metoda add(String) pentru a adauga elemente la acest obiect.
LISTE DERULANTE
-
Curs 8 - Java
Ca si in cazul celorlalte componente si listele derulante au cateva metode des utilizate in conjunctie cu ele: - metodele getItem(int), countItems(), getSelectedIndex(), getSelectedItem() si
select(int) sunt aceleasi ca si pentru listele de optiuni. - getSelectedIndexes() - intoarce un tablou de intregi care contine pozitiile fiecarui
element selectat - getSelectedItems() - intoarce un tablou de siruri care contine textul fiecarui
element selectat
LISTE DERULANTE
-
Curs 8 - Java
import java.awt.*; public class ListaDerulanta extends java.applet.Applet { List lista=new List(4,true); Label eticheta=new Label("Selectati ziarele pe care le cititi: "); public void init() { add(eticheta); lista.add("Evenimentul zilei"); lista.add("Adevarul"); lista.add("Libertatea"); lista.add("ProSport"); lista.add("Gazeta Sporturilor"); lista.add("Romania Libera"); add(lista); } }
LISTE DERULANTE
-
Curs 8 - Java
Pentru a crea o bara de scroll trebuie sa folosim unul dintre constructorii urmatori: - Scrollbar() - creaza o bara de scroll verticala cu valorile minima si maxima setate
initial la 0 - Scrollbar(int) - creaza o bara de scroll cu valorile maxima si minima setate la 0 iar
orientarea este data de argumentul intreg. Acest argument poate lua ca valori urmatoarele variabile de clasa: Scrollbar.HORIZONTAL, Scrollbar.VERTICAL
- Scrollbar(int,int,int,int,int) - se creaza astfel o bara de scroll cu caracteristicile urmatoare:
- primul argument stabileste orientarea cu ajutorul variabilelor de clasa prezentate mai sus
- valoarea initiala a barei de scroll, care trebuie sa fie intre valorile minima si maxima ale barei
- latimea sau inaltimea generala a casetei folosite pentru modificarea valorii barei de scroll; in cazul in care se foloseste marimea predefinita a acestei casete vom folosi valoarea 0 pentru acest al treilea argument
- valoarea minima a barei de scroll - valoarea maxim a barei de scroll
BARE DE SCROLL
-
Curs 8 - Java
In exemplul de mai jos se creaza o bara de scroll orizontala. Pentru a afisa bara de scroll pe toata latimea ecranului trebuie sa folosim un administrator de dispunere - si se va folosi GridLayout pentru a imparti ecranul in 15 linii iar bara noastra de scroll va acoperi prima linie astfel creata a ecranului; caseta care gliseaza pe bara noastra de scroll va fi initial la o cincime din lungimea barei si va avea ca latime tot o cincime din lungimea barei, lucru setat din constructorul folosit pentru crearea barei noastre: import java.awt.*; public class BaraScroll extends java.applet.Applet { GridLayout admin=new GridLayout(15,1); Scrollbar bara=new Scrollbar(Scrollbar.HORIZONTAL,20,20,1,100); public void init() { setLayout(admin); add(bara); } }
BARE DE SCROLL
-
Curs 8 - Java
Aceste componente sunt in general folosite ca loc pentru afisarea de imagini sau animatii. Bineinteles ca putem desena si pe alte componente - ca de exemplu in fereastra Applet - insa obiectele Canvas (aceasta fiind clasa responsabila de implementarea suprafetelor de desenare) sunt cele mai simplu de folosit in acest scop. Pentru a folosi o suprafata de desenare trebuie mai intai sa cream o subclasa a clasei Canvas; aceasta subclasa se poate ocupa de toate operatiunile de desenare care trebuie sa aiba loc in metoda sa paint(). Dupa ce s-a creat o subclasa Canvas aceasta poate fi folosita in aplicatia noastra prin apelarea constructorului sau si prin adaugarea noului obiect Canvas intr-un container.
SUPRAFETE DE DESENARE
-
Curs 8 - Java
import java.awt.*; public class Cruce extends java.applet.Applet { GridLayout admin=new GridLayout(1,1); canvasNou suprafata=new canvasNou(); public void init() { setLayout(admin); add(suprafata); } } class canvasNou extends java.awt.Canvas { public void paint(Graphics ecran) { int x=getSize().width/2; int y=getSize().height/2; ecran.setColor(Color.blue); ecran.drawLine(x-10,y,x-2,y); ecran.drawLine(x+10,y,x+2,y); ecran.drawLine(x,y-10,x,y-2); ecran.drawLine(x,y+10,x,y+2); } }
SUPRAFETE DE DESENARE