10 Diferențe între JavaFX și Swing

Dacă sunteți un programator Java experimentat, ați lucrat fără îndoială cu leagăn pentru a crea interfețe de utilizator. Oracle nu a abandonat complet oscilația – nu este în dezws, și aplicațiile leagăn continuă să funcționeze. Dar nu funcționează mai mult pentru a îmbunătăți leagănul, iar Oracle a făcut clar că JavaFX este viitorul.

Aici sunt zece diferențe de bază între JavaFX și leagăn.

în JavaFX, toate Lumea este un scenariu

în leagăn, clasa care conține componentele interfeței cu utilizatorul este numită un cadru și definită de clasa JFRAME. Un complot este în esență o fereastră goală la care poate fi adăugat un panou, care servește ca un container pentru elementele de interfață utilizator. Un panou este definit de clasa JPannel.

O aplicație swing este de fapt o clasă care extinde clasa JFRAME. Pentru a vizualiza componentele interfeței utilizator, adăugați componente într-un jpanel și apoi adăugați panoul în cadru.

JavaFX utilizează metaforul unui teatru pentru a modela recipientele la nivel înalt ale unei aplicații. Un scenariu (definit de scenariul de clasă) reprezintă cel mai înalt container de nivel – de obicei o fereastră, dar în unele sisteme de operare, stadiul poate reprezenta întreaga suprafață a ecranului. Controalele individuale și alte componente care formează interfața cu utilizatorul sunt conținute într-o scenă (definită de scena de clasă). O aplicație poate avea mai mult de o scenă, dar numai una dintre scene poate fi afișată pe scenă la un moment dat.

O scenă conține o scenă grafică, care este cel mai important concept din JavaFX. Graficul scenei este o colecție de toate elementele care alcătuiesc o interfață cu utilizatorul – grupuri, modele, controale și forme. Aceste obiecte sunt numite noduri și sunt toate derivate din nodul de clasă. Nodul de clasă are multe caracteristici și capabilități utile care sunt efectuate automat la orice obiect pe care îl puteți adăuga la interfața dvs. de utilizator. De exemplu, nodul de clasă definește o metodă de setotate care îi permite să rotească orice nod pe scenariul grafic.

în JavaFX, controlerele de distribuție sunt noduri

În leagăn, un design este asociat cu un jpanel. JPannelul de nivel înalt dă designul de bază pentru cadru. Dacă doriți să cuibați desene suplimentare în designul la nivel înalt, trebuie să creați alte JPanels, să vă setați modelele asociate și apoi să le adăugați la aspectul celui mai înalt nivel.

Video: AWT vs Swing vs JavaFX

În JavaFX, desenele sunt subclase ale nodului de clasă, precum și controale și forme. Desenele conțin o colecție de noduri și orice nod conținut într-o dispoziție poate fi orice tip de nod: un control, o formă sau altă dispoziție. Această schemă este mult mai puțin greoaie decât Asociația de oscilație a modelelor de panouri Cu toate acestea, veți realiza că evenimentele din JavaFX sunt mai bine concepute și mai consecvente decât echivalentele sale de leagăn. Dar cel mai mare motiv pentru manipularea evenimentelor este îmbunătățit în JavaFX se datorează dependenței sale de proprietăți clasele tale. Pe scurt, o proprietate este o variabilă a cărei valoare poate fi observată. Puteți înregistra un ascultător cu orice proprietate, care vă permite să scrieți codul care este activat automat de fiecare dată când se schimbă proprietatea. În plus, proprietățile pot fi legate între ele, ceea ce înseamnă că dacă modificați valoarea unei proprietăți, cealaltă valoare a proprietății se schimbă automat cu acesta.

deoarece aproape toate caracteristicile elementelor interfeței utilizatorului sunt expediate prin proprietăți, JavaFX oferă controlul evenimentului care este neobișnuit în leagăn. De exemplu, în JavaFX, puteți conecta un detector de evenimente pentru culoarea într-o formă. Dacă formularul modifică culoarea, codul detectorului evenimentului este executat. Este posibil să nu aveți o utilizare pentru capacitate, dar poate fi utilizată dacă este necesar.

JavaFX este personalizabilă cu CSS

una dintre cele mai bune caracteristici JavaFx este că îl puteți controla formatul cu foi de stil cascading (CSS). Aproape toate aspectele legate de aspectul interfeței cu utilizator pot fi stabilite printr-o regulă de stil și pot fi ușor de permis să selecteze care dintre diferitele foi de stil disponibile pentru a se aplica scenei. Prin urmare, puteți schimba tot aspectul aplicației dvs. cu un singur apel la metodă.

JavaFX are un control mai consistent

în general, veți descoperi că ierarhia de control JavaFX este mai completă decât oscilația lui. Ambele au toate comenzile de bază – butoanele, bifați casetele, mesele combinate și altele asemenea. Dar JavaFX are mai multe controale interesante care nu au, cum ar fi controlul de control subțire și controlul controlului care organizează mai multe controale Tituldpane într-un stack. Și faptul că toate aceste controale sunt personalizabile folosind CSS le dă un mare avantaj față de leagăn.

JavaFX are efecte speciale

javafx.scene.exfect pachet conține un număr de clase pe care tu Poate aplica cu ușurință efecte speciale oricărui nod din scenariul grafic. Aceste clase permit aplicarea cu ușurință a umbrelor, a reflecțiilor, a neclarității și a altor efecte vizuale interesante care pot transforma aspectul interfeței lor de utilizator.

Animație este mai ușoară la JavaFX

Animație este posibilă în leagăn, Dar echilibrul nu oferă niciun sprijin direct. Pentru a încuraja o componentă swing, trebuie să vă configurați cronometrele proprii și să vă construiți logica proprie pentru a executa animația.

Video: Javaone 2012: JavaFX și bogat utilizator experiență

dimpotrivă, JavaFX a încorporat în sprijinul pentru animații sofisticate care pot fi aplicate oricărui nod din scenariul grafic. Puteți utiliza unul dintre diferitele tipuri de tranziție încorporată pentru a efectua animații comune, cum ar fi turnate, rotații sau rute de mișcare. Sau, puteți utiliza clasele cheie și cronologia pentru a configura cu ușurință animațiile personalizate.

JavaFX este compatibil cu dispozitive tactile moderne

oscilarea nu are suport pentru dispozitive touch moderne. În contrast, JavaFX a încorporat în sprijinul gesturilor tactile comune, cum ar fi deplasarea, diapozitivul, rotirea și zoomul. Manipularea acestor evenimente din JavaFX este la fel de ușoară ca manipularea oricărui alt tip de eveniment: trebuie doar să instalați un detector de evenimente în evenimentul Touch și apoi să scrieți codul care răspunde corect.

JavaFX nu Are echivalent cu JoptionPane

Nu ar fi corect să completați complet această listă de zece puncte cu diferențe care favorizează în mod clar JavaFX. Iată o mică supărare a JavaFX: nu are nici o echivalentă cu clasele JoptionPane, care este foarte utilă pentru vizualizarea mesajelor de alertă scurtă sau pentru a obține o intrare simplă pentru utilizator. În JavaFX, trebuie să vă creați propriul dvs. echivalent cu această clasă utilă.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *