Interfețe utilizator grafice

Interfața utilizator, numită și interfața om-mașină, este mijlocul de comunicare între un sistem informatic și utilizator.
 
Î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:
  - interfața prin linie de comandă;
  - interfața grafică.

Î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.



© Copyright 2000 - Severin BUMBARU, Universitatea "Dunărea de Jos" din Galați