Se é un programador de Java experimentado, sen dúbida traballou con Swing para crear interfaces de usuario. Oracle non abandonou completamente oscilación: non está en desuso e as aplicacións de Swing continúan traballando. Pero non funciona máis para mellorar o swing, e Oracle deixou claro que JavaFX é o futuro.
Aquí tes dez diferenzas básicas entre JavaFX e Swing.
en JavaFX, todo O mundo é un escenario
en Swing, a clase que contén os compoñentes da interface de usuario chámase marco e definida pola clase JFrame. Unha trama é esencialmente unha fiestra baleira á que se pode engadir un panel, que serve como un recipiente para os elementos da interface de usuario. Un panel defínese pola clase Jpannel.
Unha aplicación de swing é realmente unha clase que expande a clase JFrame. Para ver os compoñentes da interface de usuario, engada compoñentes a un jpanel e engada o panel ao cadro.
Javafx usa a metáfora dun teatro para modelar os contedores de alto nivel dunha aplicación. Un escenario (definido polo escenario de clase) representa o contedor máis alto de nivel – normalmente unha xanela, pero nalgúns sistemas operativos, o escenario pode representar toda a superficie da pantalla. Os controis individuais e outros compoñentes que forman a interface de usuario están contidos nunha escena (definida pola escena da clase). Unha aplicación pode ter máis dunha escena, pero só unha das escenas pódese mostrar no escenario nun determinado momento.
Unha escena contén unha escena gráfica, que é o concepto máis importante en JavaFX. O gráfico de escena é unha colección de todos os elementos que compoñen unha interface de usuario: grupos, deseños, controis e formas. Estes obxectos chámanse nodos e todos son derivados do nodo de clase. O nodo de clase ten moitas características e capacidades útiles que se realizan automaticamente dispoñibles para calquera obxecto que pode engadir á súa interface de usuario. Por exemplo, o nodo de clase define un método de setotate que lle permite xirar calquera nodo do escenario gráfico.
en javafx, os controladores de distribución son nodos
No balance, un deseño está asociado a un jpanel. O alto nivel JPannel dá o deseño básico para o marco. Se desexa anidar deseños adicionais no deseño de alto nivel, ten que crear jpanels adicionais, configurar os seus deseños asociados e, a continuación, engádeos ao deseño máis alto de nivel.
Video: AWT vs swing vs javafx
En JavaFX, os deseños son subclases do nodo de clase así como controis e formularios. Os deseños conteñen unha colección de nodos e calquera nodo contido nunha disposición pode ser calquera tipo de nodo: un control, unha forma ou outra disposición. Este esquema é moito menos engorroso que a Asociación de Oscilacións de Deseños de Panel.
JAVAFX ten o control de eventos mellorado
tanto JavaFX como o evento utilizan a xestión de ascilacións para responder á entrada do usuario de eventos. Non obstante, darse conta de que os eventos en Javafx están mellor deseñados e máis consistentes que os seus equivalentes de balance. Pero o maior motivo da manipulación de eventos mellórase en JavaFX débese á súa dependencia das propiedades.
JavaFX soporta propiedades
javafx é compatible con conceptos de propiedades e usa as propiedades extensivamente a través de as túas clases. En definitiva, unha propiedade é unha variable cuxo valor pode ser observado. Pode rexistrar un oínte con calquera propiedade que lle permite escribir código que se active automaticamente cada vez que a propiedade cambia. Ademais, as propiedades poden estar ligadas xuntas, o que significa que se cambia o valor dunha propiedade, o outro valor da propiedade cambia automaticamente con el.
porque case todas as características dos elementos da interface de usuario Son enviados a través de propiedades, JavaFX ofrece control de eventos que é inusual no swing. Por exemplo, en JavaFX, pode conectar un detector de eventos para a cor nunha forma. Se a forma cambia de cor, execútase o código detector de eventos. Non pode ter un uso para a capacidade, pero pode usarse se é necesario.
javafx é personalizable con CSS
Unha das mellores funcións de JavaFX é que pode controlar o formato con follas de estilo cascading (CSS). Case todos os aspectos da aparición da interface de usuario poden ser establecidos por unha regra de estilo e pódese permitir facilmente seleccionar cal das distintas follas de estilo dispoñibles para aplicar á escena. Polo tanto, pode cambiar todo o aspecto da súa solicitude cunha soa chamada ao método.
JavaFX ten un control máis consistente
En xeral, atoparás que a xerarquía de control de JavaFX é máis completa que a oscilación de. Ambos teñen todos os controis básicos: botóns, caixas de verificación, táboas combinadas e similares. Pero JavaFX ten varios controis interesantes que non teñen, como o control de control de titulado e o control de control que organiza varios controis titulados nunha pila. E o feito de que todos estes controis sexan personalizables usando CSS dálles unha gran vantaxe sobre o balance.
javafx ten efectos especiais
javafx.scene.exfect Paquete contén unha serie de clases que ti Pode aplicar facilmente efectos especiais a calquera nodo do escenario gráfico. Estas clases permiten aplicar facilmente sombras, reflexións, borrão e outros efectos visuais interesantes que poden transformar o aspecto da súa interface de usuario.
A animación é máis sinxela en JavaFX
A animación é posible en Swing, Pero o equilibrio non proporciona ningún apoio directo. Para fomentar un compoñente de swing, debes configurar os teus propios temporizadores e construír a túa propia lóxica para executar a animación.
Video: JavaOne 2012: JAVAFX e experiencia de usuario rica
Pola contra, JavaFX incorporou ao apoio a animacións sofisticadas que se poden aplicar a calquera nodo do escenario gráfico. Podes usar un dos distintos tipos de transición incorporada para realizar animacións comúns como fundición, rotacións ou rutas de movemento. Ou pode usar as clases de clave e cronoloxía para configurar facilmente animacións personalizadas.
javafx é compatible con dispositivos táctiles modernos
Oscilación carece de soporte para dispositivos táctiles modernos. En contraste, JavaFX incorporou ao apoio a xestos táctiles comúns, como o desprazamento, a diapositiva, a rotación eo zoom. O manexo destes eventos en JavaFX é tan sinxelo coma o manexo de calquera outro tipo de evento: só tes que instalar un detector de eventos no evento táctil e logo escribir o código que responde correctamente.
javafx non Ten equivalente a joptionpane
Non sería xusto cubrir completamente esta lista de dez puntos con diferenzas que claramente favorecen a JavaFX. Aquí tes unha pequena molestia de JavaFX: non ten equivalente con clase de equivalente a JOPTIONPANE, que é moi útil para a visualización de mensaxes de alerta curta ou obter unha entrada sinxela para o usuario. En JavaFX, ten que crear o seu propio equivalente a esta clase útil.