Si vostè és un programador de Java amb experiència, que sens dubte han treballat amb Swing per crear interfícies d’usuari. Oracle no ha abandonat del tot oscil·lació – no està en desús, i aplicacions Swing seguir treballant. Però no s’està treballant més per millorar Swing, i Oracle ha deixat clar que JavaFX és el futur.
Aquí hi ha deu diferències bàsiques entre JavaFX i Swing.
En JavaFX, tot el món és un escenari
En Swing, la classe que conté els components de la interfície d’usuari es denomina marc i es defineix per la JFrame classe. Una trama és essencialment una finestra buida a la qual es pot afegir una panell, que serveix com un contenidor per als elements d’interfície d’usuari. Un panell es defineix per la JPanel classe.
Una aplicació Swing és en realitat una classe que ampliï la JFrame classe. Per visualitzar els components d’interfície d’usuari, afegir components a una JPanel i després afegir el panell a el marc.
JavaFX utilitza la metàfora d’un teatre per a modelar els contenidors d’alt nivell d’una aplicació. UN escenari (Definida per la Escenari classe) representa el recipient més alt nivell – en general, una finestra, però en alguns sistemes operatius, l’etapa pot representar tota la superfície de la pantalla. Els controls individuals i altres components que formen la interfície d’usuari estan continguts en una escena (Definida per l’Escena classe). Una aplicació pot tenir més d’una escena, però només una de les escenes es pot mostrar a l’escenari en un moment donat.
Una escena conté una gràfic de l’escena, que és el concepte més important en JavaFX . El gràfic d’escena és una col·lecció de tots els elements que componen una interfície d’usuari – grups, dissenys, controls, i formes. Aquests objectes es denominen nodes i són tots derivats de la Node classe. els Node classe té moltes característiques útils i capacitats que es realitzen de forma automàtica a disposició de qualsevol objecte que pot afegir a la seva interfície d’usuari. Per exemple, el Node classe defineix una setRotate mètode que li permet girar qualsevol node a l’escenari gràfic.
En JavaFX, controladors de distribució són nodes
en Swing, un disseny està associat amb una JPanel. L’alt nivell JPanel dóna el disseny bàsic per al marc. Si voleu niar dissenys addicionals en el disseny d’alt nivell, ha de crear addicional JPanels, establir els seus dissenys associats i, a continuació, afegir-los a la disposició de més alt nivell.
Vídeo: AWT vs Swing vs JavaFX
En JavaFX, els dissenys són subclasses de la Node classe a l’igual que els controls i formes. Dissenys contenen una col·lecció de nodes, i qualsevol node continguda en una disposició poden ser qualsevol tipus de node: un control, una forma, o d’una altra disposició. Aquest esquema és molt menys molest que l’associació d’oscil·lació dels dissenys amb panells.
JavaFX té el control d’esdeveniments millorat
Tant JavaFX i l’esdeveniment ús oscil·lació maneig per respondre a esdeveniments d’entrada de l’usuari. No obstant això, s’adonarà que els esdeveniments en JavaFX estan millor pensada i més consistent que els seus equivalents en Swing. Però la major raó per la manipulació d’esdeveniments es millora en JavaFX és causa de la seva dependència de les propietats.
JavaFX admet propietats
JavaFX és compatible amb els conceptes de propietats i utilitza les propietats extensivament a través de les seves classes. En poques paraules, una propietat és una variable el valor es pot observar. Podeu registrar un oient amb qualsevol propietat, que li permet escriure codi que s’activa automàticament cada vegada que canvia la propietat. A més, es pot enllaçar propietats entre si, el que vol dir que si canvia el valor d’una propietat, l’altre valor de la propietat canvia automàticament amb ell.
Com que gairebé totes les característiques dels elements de interfície d’usuari són enviades a través de propietats, JavaFX proporciona el control d’esdeveniments que és insòlit en Swing. Per exemple, en JavaFX, pot connectar un detector d’esdeveniments per al color d’una forma. Si la forma canvia de color, s’executa el codi detector d’esdeveniments. Potser no teniu un ús per a la capacitat, però que es pot utilitzar si cal.
JavaFX és personalitzable amb CSS
Una de les millors característiques de JavaFX és que es pot controlar el format amb Cascading Style Sheets (CSS). Gairebé tots els aspectes de l’aparença de la interfície d’usuari pot ser establert per una regla d’estil, i es pot fàcilment permetre a l’usuari seleccionar quina de les diverses fulles d’estil disponibles per aplicar a l’escena. Per tant, es pot canviar tot l’aspecte de la seva aplicació amb una sola trucada a l’mètode.
JavaFX té un control més conseqüent
En general, trobareu que la jerarquia de control JavaFX és més completa que l’oscil·lació de. Tots dos tenen tots els controls bàsics – botons, caselles de verificació, quadres combinats, i similars. Però JavaFX té diversos controls que s’obren interessants que no té, com el colapsable TitledPane el control i la Acordió control que organitza múltiple TitledPane controla en una pila. I el fet que tots aquests controls són personalitzable mitjançant CSS els dóna un gran avantatge sobre Swing.
JavaFX té efectes especials
els javafx.scene.effect paquet conté un nombre de classes que es poden aplicar fàcilment efectes especials a qualsevol node a l’escenari gràfic. Aquestes classes permeten aplicar fàcilment ombres, reflexos, desenfocaments i altres efectes visuals interessants que poden transformar l’aspecte de la seva interfície d’usuari.
L’animació és més fàcil en JavaFX
L’animació és possible en Swing, però balancegi no proporciona cap suport directe a ella. Per animar un component Swing, ha de configurar els seus propis temporitzadors i construir la seva pròpia lògica per executar l’animació.
Vídeo: JavaOne 2012: JavaFX and Rich User Experience
Per contra, JavaFX ha incorporat en el suport per animacions sofisticades que es poden aplicar a qualsevol node a l’escenari gràfic. Podeu utilitzar una de les diverses classes de transició incorporat per a realitzar animacions comuns com ara fosos, rotacions, o rutes de moviment. Podeu també utilitzar la keyframe i Cronologia classes per configurar fàcilment animacions personalitzades.
JavaFX és compatible amb els dispositius tàctils moderns
Oscil·lació manca de suport per a dispositius tàctils moderns. En contrast, JavaFX ha incorporat en el suport per gestos tàctils comuns, com ara el desplaçament, lliscar, rotació i zoom. El maneig d’aquests esdeveniments en JavaFX és tan fàcil com el maneig de qualsevol altre tipus d’esdeveniment: Només ha d’instal lar un detector d’esdeveniments en l’esdeveniment de toc i després escriure codi que respon adequadament.
JavaFX no té equivalent a JOptionPane
No seria just per omplir completament aquesta llista de deu punts amb diferències que afavoreixen clarament JavaFX. Heus aquí una petita molèstia de JavaFX: No té cap equivalent incorporada a Swing de JOptionPane classe, que és molt útil per a la visualització dels missatges d’alerta curts o aconseguir d’entrada senzilla per a l’usuari. En JavaFX, vostè ha de crear el seu propi equivalent a aquesta classe útil.