Cuprins:
- În JavaFX, toată lumea este o scenă
- În JavaFX, managerii de layout sunt noduri
- JavaFX a îmbunătățit manevrarea evenimentelor
- JavaFX acceptă proprietăți
- JavaFX poate fi derulat cu CSS
- JavaFX are mai multe controale consecvente
- JavaFX are efecte speciale
- Animația este mai facilă în JavaFX
- JavaFX suportă dispozitive touch moderne
- JavaFX nu are nici un echivalent cu JOptionPane
Video: JavaFX Scene Builder Tutorial - Make GUI Responsive 2024
Dacă sunteți un programator Java cu experiență, ați lucrat fără îndoială cu Swing pentru a crea interfețe utilizator. Oracle nu a abandonat complet Swing - nu este depreciat, iar aplicațiile Swing continuă să funcționeze. Dar nu se mai face nici o treabă pentru a îmbunătăți Swing, iar Oracle a făcut clar faptul că JavaFX este viitorul.
Aici sunt zece diferențe de bază între JavaFX și Swing.
În JavaFX, toată lumea este o scenă
În Swing, clasa care deține componentele interfeței de utilizator se numește cadru și este definită de clasa JFrame. Un cadru este în esență o fereastră goală la care puteți adăuga un panou , care servește ca un container pentru elementele interfeței de utilizator. Un panou este definit de clasa JPanel.
O aplicație Swing este de fapt o clasă care extinde clasa JFrame. Pentru a afișa componentele interfeței utilizator, adăugați componente într-un JPanel și apoi adăugați panoul la cadru.
JavaFX folosește metafora unui teatru pentru a modela containerele de nivel superior ale unei aplicații. O etapă (definită de clasa Stage) reprezintă containerul cel mai înalt - de obicei o fereastră, dar pe unele sisteme de operare, etapa poate reprezenta întreaga suprafață de afișare. Controalele individuale și alte componente care alcătuiesc interfața utilizatorului sunt cuprinse într-o scenă (definită de clasa Scene). O aplicație poate avea mai mult de o scenă, dar numai o scenă poate fi afișată pe scenă la un moment dat.
O scenă conține un grafic de scena , care este cel mai important concept din JavaFX. Graficul grafic este o colecție a tuturor elementelor care alcătuiesc o interfață utilizator - grupuri, machete, controale și forme. Aceste obiecte sunt numite noduri și toate sunt derivate din clasa nodurilor. Clasa de noduri are multe caracteristici utile și capabilități care sunt automat disponibile pentru orice obiect pe care îl puteți adăuga la interfața dvs. de utilizator. De exemplu, clasa Node definește o metodă setRotate care vă permite să rotiți orice nod din graficul scenei.
În JavaFX, managerii de layout sunt noduri
În Swing, un aspect este asociat unui JPanel. JPanel-ul de nivel superior oferă schema de bază a cadrului. Dacă doriți să așezați machete suplimentare în aspectul de nivel superior, trebuie să creați JPanele suplimentare, să setați machetele asociate și apoi să le adăugați la aspectul de nivel superior.
În JavaFX, layouts sunt subclase ale clasei Node la fel ca și controalele și formele. Aspectul conține o colecție de noduri și orice nod conținut într-un aspect poate fi orice tip de nod: un control, o formă sau alt aspect.Această schemă este mult mai puțin greoaie decât asocierea Swing cu layout-uri cu panouri.
JavaFX a îmbunătățit manevrarea evenimentelor
Atât JavaFX, cât și Swing folosesc manipularea evenimentelor pentru a răspunde la evenimentele de intrare ale utilizatorilor. Totuși, veți observa că evenimentele din JavaFX sunt mai bine gândite și mai consecvente decât echivalentele lor în Swing. Dar cel mai mare motiv de gestionare a evenimentului este îmbunătățit în JavaFX este datorită dependenței sale de proprietăți.
JavaFX acceptă proprietăți
JavaFX acceptă noțiunile proprietăți și utilizează proprietățile extensiv în toate clasele sale. Pur și simplu, o proprietate este o variabilă a cărei valoare poate fi observată. Puteți înregistra un ascultător cu orice proprietate, permițându-vă să scrieți cod care este declanșat automat ori de câte ori se schimbă proprietatea. În plus, puteți să vă puteți lega proprietățile , ceea ce înseamnă că, dacă se modifică o valoare a proprietății, cealaltă valoare a proprietății se modifică automat cu aceasta.
Deoarece aproape toate caracteristicile elementelor de interfață utilizator sunt gestionate prin intermediul proprietăților, JavaFX oferă o manipulare a evenimentelor care nu este cunoscută în Swing. De exemplu, în JavaFX, puteți atașa un ascultător de evenimente la culoarea unei forme. Dacă forma modifică culoarea, codul de ascultător al evenimentului este executat. Este posibil să nu aveți o utilizare pentru capacitate, dar o puteți utiliza dacă doriți.
JavaFX poate fi derulat cu CSS
Una dintre cele mai bune caracteristici ale JavaFX este că puteți controla formatarea cu foi de stil cascadă (CSS). Aproximativ fiecare aspect al aspectului interfeței dvs. de utilizator poate fi setat de o regulă de stil și puteți permite cu ușurință utilizatorului să selecteze care dintre foile de stil disponibile pentru a aplica scenei. Astfel, puteți modifica întreaga apariție a aplicației dvs. printr-o singură metodă.
JavaFX are mai multe controale consecvente
În general, veți observa că ierarhia de control JavaFX este mai completă decât Swing's. Ambele au toate comenzile de bază - butoane, casete de selectare, casete combo și altele asemenea. Dar JavaFX are mai multe controale interesante pe care Swing nu le are, cum ar fi controlul TitledPane pliabil și controlul Accordion care aranjează mai multe controale TitledPane într-un teanc. Și faptul că toate aceste controale sunt deranjabile de CSS le oferă un avantaj imens față de Swing.
JavaFX are efecte speciale
javafx. scenă. efect pachet conține un număr de clase care pot aplica cu ușurință efecte speciale pentru orice nod din graficul de scenă. Aceste clase vă permit să aplicați ușor umbre, reflecții, blururi și alte efecte vizuale interesante care pot transforma aspectul interfeței dvs. de utilizator.
Animația este mai facilă în JavaFX
Animația este posibilă în Swing, dar Swing nu oferă niciun suport direct pentru aceasta. Pentru a anima o componentă Swing, trebuie să configurați cronometrele proprii și să creați propria logică pentru a realiza animația.
În contrast, JavaFX are suport integrat pentru animații sofisticate care pot fi aplicate oricărui nod din graficul scenelor. Puteți utiliza una din mai multe clase de tranziție încorporate pentru a efectua animații comune, cum ar fi decolorări, rotații sau căi de mișcare.Sau, puteți utiliza clasele KeyFrame și Timeline pentru a seta cu ușurință animații personalizate.
JavaFX suportă dispozitive touch moderne
Swing nu are suport pentru dispozitive touch moderne. În contrast, JavaFX are suport integrat pentru gesturi comune de atingere, cum ar fi derularea, derularea, rotirea și zoom-ul. Manipularea acestor evenimente în JavaFX este la fel de ușoară ca manipularea oricărui alt tip de eveniment: pur și simplu instalați un ascultător de eveniment la evenimentul tactil și apoi scrieți un cod care răspunde în mod corespunzător.
JavaFX nu are nici un echivalent cu JOptionPane
Nu ar fi corect să completezi complet această listă de zece diferențe cu puncte care favorizează clar JavaFX. Iată o mică entuziasm de JavaFX: Nu are nici o construcție echivalentă cu clasa JOptionpane a lui Swing, care este foarte utilă pentru afișarea mesajelor scurte de alertă sau pentru obținerea de informații simple de la utilizator. În JavaFX, trebuie să vă creați echivalentul acestei clase utile.