Java FX
Java FX
Platforma JavaFX permite accesul la setul de API-uri Java pentru a dezvolta aplicaţii ce
implică interacțiunea cu utilizatorul într-un mod flexibil, exploatând capabilităţi ale acestui
limbaj de programare de nivel înalt, precum:
utilizarea unor funcționalități Java, cum ar fi: clase generice, adnotări, lucrul cu mai
multe fire de execuție, expresii Lambda;
accesul la JavaFX pentru dezvoltatorii de aplicații Internet din cadrul altor limbaje
dinamice bazate pe mașina virtuală Java (Groovy, JavaScript);
accesul la alte limbaje dinamice bazate pe mașina virtuală Java pentru implementarea de
aplicații JavaFX complexe;
folosirea unei biblioteci de asocieri ce include suport pentru rezolvarea leneșă a
referințelor, legarea expresiilor și secvențelor de expresii, reevaluarea parțială a asocierilor
(aceasta putând fi utilizată și din alte limbaje dinamice bazate pe mașina virtuală Java, printr-o
sintaxă similară);
extinderea bibliotecilor de colecții Java cu liste sau asocieri observabile, care permit
aplicațiilor să realizeze conexiuni între interfețe și modelele de date, permițând actualizarea
interfeței grafice conform cu modificările detectate în cadrul modelelor de date.
API-urile JavaFX au fost portate direct în Java, bazându-se mai mult pe standarde Internet,
cum ar fi CSS pentru stilizarea controalelor sau ARIA pentru specificări referitoare la
accesibilitate.
→ Graful de scene
Implementarea unei aplicații JavaFX implică proiectarea și dezvoltarea unui graf de scene
(eng. Scene Graph), structură ierarhică de noduri ce conţine elementele vizuale ale interfeţei
grafice cu utilizatorul, care poate trata diferite evenimente legate de acestea şi care poate fi
redată.
Un element din graful de scene (= un nod) este identificat în mod unic, fiind caracterizat
printr-o clasă de stil şi un volum care îl delimitează. Fiecare nod are un părinte (cu excepția
nodului rădăcină), putând avea nici unul, unul sau mai mulţi copii. De asemenea, pentru un astfel
de element pot fi definite efecte (estompări sau umbre), opacitate, transformări, mecanisme de
tratare a diferitelor evenimente (care vizează interacţiunea cu utilizatorul) precum şi starea
aplicaţiei.
Spre diferenţă de Swing sau AWT (Abstract Window Toolkit), JavaFX conţine pe lângă
mecanisme de dispunere a conţinutului, controale, imagini sau obiecte multimedia şi primitive
pentru elemente grafice (ca fi texte sau figuri geometice cu care se pot crea animaţii, folosind
metodele puse la dispoziţie de API-urile javafx.animation).
API-ul javafx.scene permite construirea următoarelor conţinuturi:
noduri: forme 2D şi 3D, imagini, conţinut multimedia şi conţinut Internet, text, controale
pentru interacţiunea cu utilizatorul, grafice, containere;
stări: transformări (poziţionări şi orientări ale nodurilor), efecte vizuale;
efecte: obiecte care modifică aspectul nodurilor (mecanisme de estompare, umbre,
reglarea culorilor).