În programare, conceptul de interfață utilizator a
apărut în legătură cu utilizarea programelor în regim interactiv.
Un asemenea regim permite utilizatorului să comunice cu procesul de
calcul în timpul desfășurării acestuia.
În prezent, se cunosc două tipuri principale de interfețe
utilizator: În modul de comunicare prin linie de comandă, operatorul uman transmite calculatorului comenzi, pe care le introduce de la tastatură sub forma unor linii de text, folosind un anumit limbaj de comandă. Exemplele cele mai cunoscute sunt limbajele de comandă ale sistemelor de operare MS-DOS și Unix. |
Interfața utilizator grafică (engleză: GUI - graphical
user interface) este o interfață om-mașină care permite
operatorului să dea comenzi și să introducă date prin acționarea asupra
unor obiecte grafice vizualizate pe ecran: butoane,
pictograme, meniuri etc.
Interfața utilizator grafică a fost introdusă pentru prima dată la Palo Research Center al firmei Xerox în anii 1970 și a fost apoi aplicată de firma Apple pe calculatoarele Macintosh în 1984. În prezent, cele mai răspândite interfețe utilizator grafice sunt sistemul Windows al firmei Microsoft și cele de tip X-Window folosite în sistemele de operare din categoria Unix. |
Un avantaj important al platformei Java 2 este că oferă pachete de clase, care permit programatorului realizarea comodă și eficientă a interfețelor grafice. În prezent, există două grupuri de pachete de clase pentru interfețe grafice, care corespund la două principii diferite de realizare a interfeței:
1. AWT (engleză: Abstract Windowing Toolkit - setul de
dezvoltare de ferestre abstracte) - este un set de clase care permit
realizarea de interfețe grafice în care se folosesc obiectele grafice
specifice platformei pe care se execută programul. Aceasta înseamnă că,
dacă programul se execută - de exemplu - sub Windows, diferitele obiecte
grafice (butoane, meniuri, bare de defilare etc.) vor avea aspectul
specific sistemului Windows, în timp ce dacă se executa sub X-Window
vor avea aspectul specific acestui sistem.
Principalele pachete utilizate în acest set sunt: java.awt,java.applet,java.awt.color si java.awt.event. Acestea se completează și cu alte subpachete ale pachetului java.awt, care sunt descrise în documentația Java API. |
2. JFC (engleză: Java Foundation Classes - clase de bază
Java), este un set de pachete de clase, care extind posibilitățile
oferite de AWT, pentru realizarea de interfețe utilizator de calitate
superioară. Dintre acestea, cele mai larg folosite constituie setul
cunoscut sub numele de cod Swing (sau JFC/Swing), care oferă
posibilitatea de a realiza interfețe grafice al căror aspect nu depinde
de platforma pe care se execută programul.
Principalele pachete din JFC/Swing sunt javax.swing și javax.swing.event, la care se adaugă multe alte subpachete ale pachetului javax.swing descrise în documentația Java API. |
Este important să menționăm că pachetele din JFC/Swing nu se
substituie, ci le completează pe cele din AWT. Modul de realizare al
interfeței grafice folosind AWT este prezentat destul de amplu in
lucrarea "Interfața
grafica utilizator în limbajul Java". În cursul de față ne vom
referi în special realizarea interfeței grafice utilizator folosind
JFC/Swing și vom folosi clasele din AWT numai acolo unde va fi absolut
necesar.
Se știe că autorii limbajului Java și-au propus ca programele
scrise în acest limbaj să poată fi executate pe orice platformă. Sub
acest aspect, realizarea interfeței grafice a ridicat probleme dificile
deoarece, pe diferite platforme, atât setul de obiecte grafice
utilizate, cât și aspectul acestora, pot fi diferite.
La realizarea setului de dezvoltare AWT s-a acceptat ideea că în program se lucrează cu niște obiecte grafice abstracte, care sa fie comune tuturor platformelor. Obiectul grafic abstract, așa cum este el luat în considerație în AWT, se caracterizează prin anumite atribute și un anumit comportament, dar aspectul său pe ecran poate sa difere de la o platformă la alta. Avantajul utilizării AWT este că utilizatorul vede pe ecran obiectele care compun interfața grafică sub forma cu care el este obișnuit pe platforma pe care lucrează. La aceasta se adaugă și faptul că AWT se înțelege și se utilizează relativ usor. Dezavantajul este că o astfel de interfață nu poate folosi decât obiectele grafice existente pe toate platformele (mulțimea de clase de obiecte grafice din AWT este "intersecția" mulțimilor de clase grafice de pe diferite platforme), ceeace restrânge posibilitatea programatorilor de a realiza interfețe utilizator diversificate și originale. Autorii setului de dezvoltare JFC/Swing au decis să realizeze un set de clase de interfață care sunt complet independente de platformă. În acest scop, s-a renunțat la metodele native, clasele Swing fiind programate total în Java. Unele din aceste clase le extind sau le dublează pe cele din AWT, iar altele sunt complet noi. Mai mult, se dă posibilitatea programatorului să dezvolte propriile sale clase de obiecte grafice prin extinderea celor existente. Este drept insă că aceasta se plătește prin creșterea complexității interfeței grafice și a nivelului de competență cerut de la programator. |