Appleturi Java

Previzualizare laborator:

Extras din laborator:

Appleturi Java (2)

Asa cum am promis in episodul trecut al serialului "Apleturi Java", in acest episod, ca si in cele ce vor urma, voi prezenta cate un exemplu. Din acest exemplu veti invata cum puteti crea interactiune cu utilizatorul folosind butoane, campuri de text etc.

Exemplul din acest episod se numeste Triunghiul lui Sierpinski. Dati un click aici pentru a vedea apletul ruland, enuntul problemei si cateva alte informatii. Deoarece apleturile java trebuie sa fie portabile relativ la sistemul de operare, orice mediu de dezvoltare Java furnizeaza clase pentru crearea elementelor de baza necesare unei interfete grafice. Aceste elemente includ: etichete (labels), campuri de text (text fields), butoane (buttons), radio butoane (radio buttons), cutii de selectie (check boxes), meniuri de selectie (choice menus) etc. Toate aceste elemente sunt incluse, asa cum va spuneam si data trecuta, in pachetul java.awt.

Etichete

O eticheta se creeaza apeland constructorul clasei Label, in felul urmator:

Label eticheta = new Label(str, align); unde str este o variabila de tip String care defineste sirul de caractere care va fi scris pe aceasta eticheta, iar align este una dintre valorile Label.LEFT, Label.CENTER sau Label.RIGHT, reprezentand alinierea etichetei la stanga, in centru sau la dreapta.

Dupa crearea etichetei, aceasta trebuie adaugata apletului scriind in cadrul functiei init() urmatoarea linie: add(eticheta).

Dupa cum puteti vedea, eticheta creata mai sus va fi afisata pe suprafata apletului in stanga, in centru sau in dreapta. Acest lucru nu va da prea multa libertate. De exemplu, cum puteti afisa o eticheta la anumite coordonate si cum puteti seta latimea si inaltimea etichetei dupa anumite valori? Atunci cand creati un aplet, Java creeaza si asigneaza in mod automat un layout implicit. Puteti seta layout-ul ca avand diferite valori, printre care enumar FlowLayout, GridLayout, BorderLayout, CardLayout, GridBagLayout. Acestea sunt clase care fac parte din pachetul java.awt. Prin urmare le puteti gasi acolo. Eu nu imi propun sa explic aceste clase pentru ca personal nu le folosesc, preferand sa am libertatea de a seta coordonatele si dimensiunile. Cum se face acest lucru? Pentru aceasta, trebuie sa nu fie setat nici un layout, ceea ce se face prin comanda setLayout(null). Apelati aceasta functie prima in init() si va va permite sa dati ce coordonate si dimensiuni doriti etichetelor. Haideti incetul cu incetul sa construim apletul pe care vi l-am propus: import java.applet.Applet;

import java.awt.*; public class proba extends Applet {

Label labelxa = new Label();

Label labelya = new Label(); public void init() {

setLayout(null);

labelxa.setText("xa");

labelxa.reshape(52,12,24,24);

add(labelxa);

labelya.setText("ya");

labelya.reshape(88,12,24,24);

add(labelya);

}

} Am notat in acest exemplu si voi nota si de acum incolo conventional instantele claselor de tip Label, Button etc. dupa clasa din care fac parte. Astfel, un obiect de tip Label il voi nota de exemplu cu labelxa sau labelya.

Deci in exemplul de mai sus am creat mai intai doua obiecte de tip Label. Apoi, in cadrul metodei init() am setat layout-ul pe null. Dintre metodele clasei Label, mai folosite sunt:

public void setText(String str); seteaza sirul de scris pe str, public String getText(); returneaza sirul afisat.

Clasa Label mosteneste clasa Component, deci si toate metodele implementate de aceasta.

Clasa Component reprezinta o componenta generica ce are ca atribute: coordonata x, coordonata y, latime, inaltime, culoare de foreground, culoare de background, font, vizibilitate etc.

Printre metodele implementate de clasa Component, mai folosite sunt:

public void move(int x, int y); muta obiectul la coordonatele x si y specificate;

public void resize(int latime, int inaltime); redimensioneaza latimea si inaltimea cu valorile specificate;

public synchronized void reshape(int x, int y, int latime, int inaltime); muta si redimensioneaza obiectul la valorile specificate.

Prin urmare, clasa Component ofera mai multe atribute necesare claselor de tip Label, Button etc, si chiar si clasa Applet mosteneste aceasta clasa, chiar daca nu direct (clasa Applet mosteneste clasa Panel, care mosteneste clasa Container, care mosteneste clasa Component). Daca cititi fisierele applet.java, component.java, label.java etc. va veti clarifica in ceea ce priveste mostenirile si metodele acestor clase. Revenind la exemplul nostru, dupa ce am stabilit textul de scris si pozitia si dimensiunile obiectului, acesta trebuie adaugat apletului prin add(labelxa). Adaugati in acelasi fel etichetele labelxb, labelyb, labelxc, labelyc, labelIteratii, corespunzand celorlalte etichete pe care le-ati vazut in aplet. Apoi compilati programul si rulati-l, apelandu-l dintr-un fisier .html in care sa aveti linia:

<applet code=triunghi.class width=500 height=500></applet>

Campuri de text

Obiectele de tip TextField sunt asemanatoare cu cele de tip Label. Deci le veti crea astfel:

TextField textFieldxa = new textField();

TextField textFieldya = new textField();

In corpul functiei init() veti seta textul implicit, coordonatele si dimensiunile, si apoi le veti adauga apletului astfel:

textFieldxa.setText("250");

textFieldxa.reshape(42,36,36,24);

add(textFieldxa);

textFieldya.setText("100");

textFieldya.reshape(88,36,36,24);

add(textFieldya); Creati si celelalte campuri de text, si anume textFieldxb, textFieldyb, textFieldxc, textFieldyc si textFieldIteratii.

Butoane

Asa cum va asteptati, butoanele pot fi create in mod asemanator cu etichetele si campurile de text:

Button buttonRedeseneaza = new Button(); buttonRedeseneaza.setLabel("Redeseneaza");

buttonRedeseneaza.reshape(356,36,96,24);

add(buttonRedeseneaza); Sa vedem acum partea cea mai

interesanta, si anume: interactiunea cu utilizatorul: cum putem citi datele introduse in campurile de text? Pentru a executa o actiune de gen apasarea unui buton, se apeleaza metoda action, astfel:

public boolean action(Event evt, Object arg);

Primul parametru, evt, este un obiect de tip Event, care desemneaza un eveniment primit de aplet, de exemplu poate fi vorba de un eveniment de la tastatura sau de la mouse. Campul target al unui obiect de tip Event indica tipul obiectului care a generat evenimentul. Pentru a determina acest obiect, folosim cuvantul cheie instanceof astfel:

if (evt.target instanceof Button). Daca acesta este adevarat, pentru a vedea exact care buton a fost apasat, de exemplu se scrie linia:

if (arg == "Redeseneaza") pentru a vedea daca a fost apasat butonul cu textul "Redeseneaza".

In exemplul prezentat nu avem mai multe butoane, deci nu e nevoie sa folosim aceasta din urma linie, dar o puteti exersa construind mai multe butoane si adaugand evenimente diferite pentru fiecare dintre ele. Sa revenim la exemplul nostru. Dupa ce ati construit etichetele, campurile de text si un buton, sa citim datele introduse.

Pentru aceasta, mai declarati ca variabila a apletului variabila sir de tip String pentru a citi in ea datele introduse intr-un camp de text:

String sir;

Apoi adaugati urmatoarele doua metode apletului: public boolean action(Event evt, Object arg) {

if(evt.target instanceof Button) {

sir=textFieldxa.getText();

repaint();

return true;

}

return false;

} public void paint(Graphics g) {

g.drawString(sir,10,100);

}

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • Appleturi Java.doc
Alte informații:
Tipuri fișiere:
doc
Nota:
9.4/10 (5 voturi)
Nr fișiere:
1 fisier
Pagini (total):
25 pagini
Imagini extrase:
26 imagini
Nr cuvinte:
9 963 cuvinte
Nr caractere:
58 309 caractere
Marime:
38.08KB (arhivat)
Publicat de:
NNT 1 P.
Nivel studiu:
Facultate
Tip document:
Laborator
Domeniu:
Calculatoare
Predat:
la facultate
Materie:
Calculatoare
Sus!