2012-05-14 9 views
27

Necesito escribir una aplicación de escritorio y ha pasado un tiempo desde que comencé a usar Swing, así que tendré una curva de aprendizaje con cualquiera de las tecnologías.JavaFX 2 vs Swing para una aplicación de escritorio pura de Windows

¿Hay alguna ventaja al hacer mi aplicación con JavaFX 2?

+2

Relacionado: http: // stackoverflow.com/questions/8136079/rich-client-platforms-versus-javafx-2-versus-swing – assylias

+6

Para obtener una buena respuesta, realmente necesita describir su aplicación deseada con algún detalle, de lo contrario, la pregunta es demasiado abierta. – jewelsea

Respuesta

32

Hace 4 años. Tenía la misma pregunta y llegué a la conclusión de que sería mejor usar Swing ya que muchas bibliotecas de terceros todavía estaban escritas para Swing en esos días. También 1.0 lanzamientos de Sun solían ser un poco rudos en los bordes (me quemé en JSF 1.0 y JPA 1.0 :-).

Hoy en día, muchas bibliotecas tienen equivalentes JavaFX o están disponibles como biblioteca JavaFX. Dicho esto, también hay muchas bibliotecas que aún son exclusivas de Swing. También he hecho algunas cosas pequeñas con JavaFX 2.0 y parece realmente completo. No me he topado con ninguno de los showstoppers.

Debe comprobar cuántas bibliotecas de IU externas va a utilizar además de Swing/JavaFX (y cuál). Si la respuesta no es muchas o muchas tienen una alternativa de Java FX (o son simples para todo usted mismo), definitivamente iría por JavaFX. También puede usar componentes Swing en JavaFX.

Como se dijo JavaFX va a depreciar Swing en el futuro y Oracle parece comprometido en JavaFX (también se abrirá). Entonces recomiendo JavaFX.

actualización de estado 13 april 2014:

  • JavaFX código abierto ha sido desde hace algún tiempo: https://wiki.openjdk.java.net/display/OpenJFX/Main
  • La comunidad está comprometida con JavaFX; Las bibliotecas solo JavaFX sin contrapartidas swing están comenzando a surgir.
  • Oracle ha demostrado su compromiso con JavaFX.

En caso de que no estuvieras convencido hace 2 años: JavaFX ahora definitivamente parece el camino a seguir. Aunque Swing probablemente esté por mucho tiempo, actualmente se encuentra en modo de mantenimiento. Se requerirá un gran esfuerzo para portar aplicaciones grandes (como IntellIJ o Netbeans) completamente a JavaFX. Y para esas grandes aplicaciones, tal puerto a gran escala probablemente no valga la pena en este momento.

+0

Estoy usando Java FX 2 en este momento ... parece genial. –

+1

* "Como se dijo JavaFX se va a desaprobar" * Según lo indicado por quién? ¿Cuando? No lo creería a menos que pueda proporcionar un enlace a una página en Oracle que admita la declaración. La afirmación es difícil de creer ya que a) AWT no está obsoleto, yb) con sus propias palabras, los componentes Swing se pueden usar en Java FX. –

+0

@Thompson: me gustaría saber eso también. (Tal vez está pensando en: http://www.oracle.com/technetwork/java/javafx/overview/faq-1446554.html#6) –

3

Ambas son buenas opciones:

  • Si quieres un rica, gráficos mejorados aplicación, las características de JavaFX 2.0 puede ser muy atractivo. Está diseñado para darle un gran control creativo sobre su experiencia de usuario y visuales. Solo asegúrese de que sea compatible con sus plataformas de destino ...
  • Si desea una aplicación de escritorio estándar que se ejecute en tantas plataformas como sea posible, entonces Swing es probablemente una opción más segura (ya que se garantiza que Swing disponible como parte de todas las distribuciones modernas de Java). También tiene la ventaja de bibliotecas de terceros más maduras.

Tampoco es probable que reemplace al otro: tienen un poco diferente destino utiliza y es probable que coexisten desde hace muchos años por venir.

+1

El segundo punto ya no es una ventaja desde Java 8. –

Cuestiones relacionadas