Apleturi Java
4. Interactiunea Java cu utilizatorul: obiecte de tip Button, Label, Textfield,
Choice.
Label
Obiectele de tip Label
sunt aproape cele mai simple din Java, fiind totusi mai mult decat un simplu
sir de text. Un obiect de tip Label
poate fi creat prin apelul constructorului clasei Label
(din pachetul java.awt), astfel:
Label nume_label = new Label(sir);
Pentru a afisa mai multe
obiecte de tip Label la niste
coordonate date si pentru a seta dimensiunile lor, scrieti in functia init()
urmatoarele linii:
- setLayout(null); (aceasta functie
va permite sa apelati functia reshape,
layout-ul implicit fiind altul care nu permite acest lucru)
- adaugati fiecare label cu comanda add(nume_label);
- dupa adaugarea fiecarui label, scrieti linia: nume_label.reshape(stanga,sus,latime,inaltime).
Aceasta functie a fost definita in clasa java.awt.Component,
din care deriva clasa Label si
toate clasele discutate in acest capitol.
Astfel, fiecare label va fi mutat la coordonatele (stanga, sus) si va fi redimensionat
la o anumita latime si inaltime.
In loc de functia
reshape, mai puteti folosi fie
functia move(stanga,sus), fie
functia resize(latime,inaltime),
fie alte functii definite in clasa java.awt.Component
sau definite de dumneavoastra.
Clasa Label are mai multe metode
utile pentru manipularea instantelor sale, dintre care le amintesc pe cele mai
folosite:
String getText() - returneaza
sirul scris pe label:
void setText(String sir) - inlocuieste
sirul curent cu sirul dat ca parametru acestei functii.
Button
Pentru crearea unui obiect de tip Button, veti apela constructorul clasei
java.awt.Button:
Button nume_buton=new Button(sir),
unde sir este sirul care va aparea scris pe buton.
Ca si in cazul clasei Label,
si aici intalnim functii pentru returnarea si schimbarea textului scris pe buton:
String nume_buton.getLabel(),
respectiv nume_buton.setLabel(String sir).
Ca si mai sus, veti adauga butonul creat cu ajutorul functiei add(nume_buton)
si veti muta si redimensiona butonul cu ajutorul functiei reshape
sau move sau resize.
Cand utilizatorul apasa butonul cu cursorul mouse-ului, Java apeleaza functia
action(). Programatorul trebuie
sa suprascrie aceasta functie astfel incat codul scris sa determine ce se va
intampla atunci cand utilizatorul apasa butonul.
Aceasta functie are doi parametri, asa cum puteti vedea din antetul ei:
public void boolean(Event evt, Object
arg);
Primul parametru este o instanta a clasei Event. Aceasta este o clasa portabila
care incapsuleaza evenimente de pe platforma GUI (Graphical User Interface)
locala (apasarea sau eliberarea unei taste, miscarea mouse-ului, apasarea sau
eliberarea unui buton al mouse-ului etc.). Campul target
al unui eveniment indica tipul obiectului care a generat evenimentul. Pentru
a determina obiectul se foloseste cuvantul cheie instanceOf.
Al doilea parametru este label-ul obiectului pentru care a avut loc actiunea:
public boolean action(Event evt, Object
arg) {
if (evt.target
instanceof Button) //daca s-a efectuat o actiune pe un obiect de tip
buton
if
(arg == str) // daca butonul are label-ul identic cu sirul str
{
//executa cod;
}
return
true;
}
Astfel, daca avem mai multe butoane sau mai multe obiecte care raspund in mod
diferit la diferite actiuni, se folosesc mai multe if-uri imbricate.
TextField
Pentru a permite utilizatorului sa introduca un anumit text de la tastatura,
trebuie introdus un obiect de tip TextField. Pentru aceasta trebuie apelat
constructorul clasei:
TextField nume_camp= new TextField(sir,
dimensiune);
Cei doi parametri sunt: textul implicit care va fi afisat in campul respectiv
si dimensiunea in caractere a campului. Dupa crearea campului, el trebuie adaugat
apletului prin functia add.
Iata cateva dintre metodele mai des folosite definite in clasa TextField:
int getColumns() - returneaza
dimensiunea in caractere a campului;
void setEchoCharacter(char c) -
seteaza caracterul de ecou pe c, ceea ce inseamna ca atunci cand utilizatorul
va testa literele, vor fi afisate caractere c;
char getEchoChar() - returneaza
caracterul ecou setat;
void setText(String str) - seteaza
textul pe str;
String getText() - returneaza
textul setat.
Choice
O modalitate de a permite utilizatorului sa selecteze o valoare din mai multe
prestabilite este folosirea obiectelor de tip Choice. Pentru a crea un
astfel de meniu se procedeaza astfel:
Choice meniu = new Choice();
Elementele acestui meniu vor fi create cu ajutorul metodei addItem(sir)
definita in clasa Choice, unde
sir este textul care va aparea ca optiune in meniu. Astfel, functia addItem
trebuie apelata pentru fiecare element care se doreste adaugat meniului.
Iata un exemplu de meniu de tip Choice:
Choice meniu = new Choice();
meniu.addItem("Rosu");
meniu.addItem("Verde");
meniu.addItem("Albastru");
add(meniu);
Cateva metode din clasa Choice sunt urmatoarele:
int countItems() - returneaza
numarul de elemente din meniu;
int getSelectedIndex() - returneaza
numarul elementului selectat. Primul are numarul 0, urmatorul numarul 1 s.a.m.d.;
String getSelectedItem() - returneaza
textul elementului selectat;
String getItem(int index) - returneaza
textul elementului cu numarul index;
void select(int index) - selecteaza
elementul cu numarul index;
void select(String sir) - selecteaza
elementul care are textul identic cu sir.
Alte clase care se incadreaza in categoria celor discutate mai sus sunt: Checkbox,
List, Menu, TextArea etc., a caror creare si manipulare
este asemanatoare cu a celor discutate.