10 Diferencias entre JavaFX y swing

Si usted es un programador de Java con experiencia, que sin duda han trabajado con Swing para crear interfaces de usuario. Oracle no ha abandonado por completo Swing - no está en desuso, y aplicaciones Swing seguir trabajando. Pero no se está trabajando más para mejorar Swing, y Oracle ha dejado claro que JavaFX es el futuro.

He aquí diez diferencias básicas entre JavaFX y Swing.

En JavaFX, todo el mundo es un escenario

En Swing, la clase que contiene los componentes de la interfaz de usuario se denomina marco y se define por la JFrame clase. Un marco es esencialmente una ventana vacía a la que se puede añadir un Panel, que sirve como contenedor de los elementos de la interfaz de usuario. Un panel se define por la JPanel clase.

Una aplicación Swing es en realidad una clase que amplíe la JFrame clase. Para mostrar los componentes de interfaz de usuario, agregar componentes a un JPanel y luego añadir el panel al marco.

JavaFX utiliza la metáfora de un teatro para modelar los contenedores de alto nivel de una aplicación. LA escenario (definida por la Escenario clase) representa el contenedor de nivel más alto - por lo general, una ventana, pero en algunos sistemas operativos, el escenario puede representar a toda la superficie de la pantalla. Los controles individuales y otros componentes que forman la interfaz de usuario están contenidos en una escena (definida por la Escena clase). Una aplicación puede tener más de una escena, pero sólo una de las escenas se puede mostrar en el escenario en un momento dado.

Una escena contiene una escenario gráfico, que es el concepto más importante en JavaFX. El escenario gráfico es una colección de todos los elementos que componen una interfaz de usuario - grupos, diseños, controles y formas. Estos objetos se denominan nodos y son todos derivados de la Nodo clase. los Nodo clase tiene muchas características útiles y capacidades que se realizan de forma automática a disposición de cualquier objeto que puede agregar a su interfaz de usuario. Por ejemplo, el Nodo clase define un setRotate método que le permite girar cualquier nodo del escenario gráfico.

En JavaFX, controladores de distribución son nodos

En Swing, un diseño se asocia con una JPanel. El alto nivel JPanel da el diseño básico para el marco. Si desea anidar diseños adicionales dentro del diseño de alto nivel, debe crear adicional JPanels, establecer sus diseños asociados y, a continuación, agregarlos a la disposición de más alto nivel.

En JavaFX, diseños son subclases de la Nodo clase al igual que los controles y formas. Layouts contienen una colección de nodos, y cualquier nodo contenida en una disposición pueden ser cualquier tipo de nodo: un control, una forma, u otro diseño. Este esquema es mucho menos engorroso que la asociación de oscilación de diseños con paneles.

JavaFX tiene un mejor manejo de eventos

Tanto JavaFX y el uso de Swing manejo de eventos para responder a eventos de entrada de usuario. Sin embargo, usted encontrará que los acontecimientos en JavaFX son mejores pensada y más consistente que sus equivalentes en Swing. Pero la mayor razón el manejo de eventos se mejora en JavaFX es debido a su dependencia de las propiedades.

JavaFX admite propiedades

JavaFX es compatible con los conceptos de propiedades y utiliza las propiedades extensivamente a través de sus clases. En pocas palabras, una propiedad es una variable cuyo valor se puede observar. Puede registrar un oyente con cualquier propiedad, lo que le permite escribir código que se activa automáticamente cada vez que los cambios de propiedad. Además, usted puede lazo propiedades entre sí, lo que significa que si cambia el valor de una propiedad, el otro valor de la propiedad cambia automáticamente con él.

Debido a que casi todas las características de los elementos de interfaz de usuario se gestionan a través de propiedades, JavaFX proporciona gestión de eventos que es inaudito en Swing. Por ejemplo, en JavaFX, puede conectar un detector de eventos para el color de una forma. Si la forma cambia de color, se ejecuta el código detector de eventos. Puede que no tenga un uso para la capacidad, pero se puede utilizar si es necesario.

JavaFX es personalizable con CSS

Una de las mejores características de JavaFX es que se puede controlar el formateo con hojas de estilo en cascada (CSS). Casi todos los aspectos de la apariencia de la interfaz de usuario se puede establecer por una regla de estilo, y usted puede permitir fácilmente al usuario seleccionar cuál de varias hojas de estilo disponibles para aplicar a la escena. Por lo tanto, puede cambiar todo el aspecto de su aplicación con una sola llamada al método.

JavaFX tiene controles más consistentes

En general, usted encontrará que la jerarquía de control JavaFX es más completa que Swing. Ambos tienen todos los controles básicos - botones, casillas de verificación, cuadros combinados y similares. Pero JavaFX tiene varios controles interesantes que Columpio todavía no tiene, como el plegable TitledPane control y la Acordeón control que organiza múltiple TitledPane controla en una pila. Y el hecho de que todos estos controles son personalizable mediante CSS les da una gran ventaja sobre Swing.

JavaFX tiene efectos especiales

los javafx.scene.effect paquete contiene una serie de clases que se pueden aplicar fácilmente efectos especiales a cualquier nodo en el escenario gráfico. Estas clases permiten aplicar fácilmente las sombras, reflejos, desenfoques y otros efectos visuales interesantes que pueden transformar el aspecto de su interfaz de usuario.

La animación es más fácil en JavaFX

La animación es posible en Swing, pero swing no proporciona ningún apoyo directo a ella. Para animar un componente Swing, debe configurar sus propios temporizadores y construir su propia lógica para realizar la animación.

Por el contrario, JavaFX ha incorporado soporte para animaciones sofisticadas que se pueden aplicar a cualquier nodo en el escenario gráfico. Puede utilizar una de varias clases de transición integrado para realizar animaciones comunes, como se desvanece, las rotaciones, o rutas de movimiento. O bien, puede utilizar la KeyFrame y Cronología clases para configurar fácilmente animaciones personalizadas.

JavaFX es compatible con dispositivos táctiles modernos

Oscilación carece de soporte para dispositivos táctiles modernos. Por el contrario, JavaFX ha incorporado soporte para gestos táctiles comunes, tales como el desplazamiento, deslizar, rotación y zoom. Manipulación de estos eventos en JavaFX es tan fácil como el manejo de cualquier otro tipo de evento: Simplemente instala un detector de eventos en el evento de toque y luego escribir código que responda adecuadamente.

JavaFX no tiene equivalente al JOptionPane

No sería justo para llenar por completo esta lista de diez diferencias con los puntos que favorecen claramente JavaFX. He aquí una pequeña molestia de JavaFX: No tiene equivalente incorporada a Swing de JOptionPane clase, que es muy útil para la visualización de los mensajes de alerta a corto o conseguir entrada sencilla para el usuario. En JavaFX, usted tiene que crear su propio equivalente a esta clase útil.




» » » » 10 Diferencias entre JavaFX y swing