2010-06-21 16 views
11

Principalmente desarrollo Java EE y ahora estoy en una situación en la que necesito escribir una pequeña aplicación Java nativa.Java GUI Frameworks: ¿cuáles están disponibles?

Pero estoy un poco perdido, ¿qué frameworks (Swing, SWT, etc.) hay por ahí? ¿Es posible algún desarrollo rápido con uno de estos? Tal vez alguien podría proporcionarme algunos enlaces o compartir sus experiencias.

Respuesta

3

Tenía algo similar que hacer hace un tiempo. Finalmente me decidí por Swing App Framework porque no intenta ser el único marco para gobernarlos a todos.

Al final escribí la pequeña aplicación, no tuve sorpresas, el código resultó ser bastante limpio (incluida la carga en una tarea incidental), el cliente está contento, estoy contento.

Su objetivo es proporcionar (robado del blurp)

  • Ciclo de Vida de aplicación, en particular el arranque y el apagado GUI.
  • Soporte para gestionar y cargar recursos, como cadenas de caracteres, mensajes formateados, imágenes, colores, fuentes y otros tipos comunes para aplicaciones de escritorio.
  • Soporte para definir, administrar y vincular acciones, incluidas las acciones que se ejecutan de forma asincrónica (en el "fondo").
  • Estado de sesión persistente: soporte para guardar de manera automática y selectiva el estado de la GUI de una ejecución de una aplicación a la siguiente.

que era exactamente lo que necesitaba.

Advertencia: parece haber poca vida en este marco ya que se rumorea que la fuerza motriz ha dejado a Sun/Oracle hace un tiempo.

Actualización: algunos desarrolladores se han bifurcado en Project Kenai con el nombre 'Better Swing Application Framework'. Entonces puede haber vida después de la muerte después de todo

+0

también, Swing bibliotecas vienen equipados con el JDK, a diferencia de SWT –

+0

Es cierto que era también una consideración. También hice Eclipse RCP y complementos en el pasado, pero encontré la sobrecarga demasiado alta para una pequeña herramienta simple. También desarrollo bajo ubuntu y despliegue en Windows, así que no tuve que lidiar con diferentes binarios de SWT. Todas las cosas pequeñas, pero se suman: –

1

Eche un vistazo a Apache Pivot. Está destinado a ser un marco de mayor nivel más moderno que simplemente Swing, que todavía usa Java en lugar de ir hasta JavaFX. Se posiciona como un kit de herramientas de RIA, pero se puede usar fácilmente para aplicaciones de escritorio independientes. Desde el sitio web:

Apache Pivot es una plataforma de código abierto para crear aplicaciones de Internet sofisticadas en Java. Combina las funciones mejoradas de productividad y facilidad de uso de un kit de herramientas RIA moderno con la solidez de la plataforma Java. Las aplicaciones pivote se escriben usando una combinación de Java y XML y se pueden ejecutar como un applet o como una aplicación de escritorio independiente, opcionalmente fuera de línea. [...] Pivot incluye características adicionales que hacen que la construcción de aplicaciones modernas de GUI sea mucho más fácil, incluida la interfaz de usuario declarativa, el enlace de datos, los efectos y las transiciones, y la integración de servicios web.

9

Swing y SWT son los dos candidatos principales, sí. También me viene a la mente JavaFX, pero creo que aún no está listo para el horario de mayor audiencia: no tenía una herramienta de edición de interfaz de usuario digna de mención desde hace mucho tiempo, el único prototipo de interfaz de usuario que conozco en la vida real fue un fiasco ...

Swing y SWT son los dos que podría pensar.ventajas básicas de oscilación son:

  • más independiente de la plataforma
  • más consistente en términos de rendimiento
  • mejor diseñador de interfaces libre (NetBeans)
  • extremadamente flexible
  • se puede utilizar en JavaFX

Las ventajas de SWT son:

  • API simple
  • utiliza widgets de interfaz de usuario nativa cuando puede (la interfaz de usuario es más similar a otras aplicaciones en el mismo entorno)
  • en algún momento, se argumentó que es más rápido que Swing, aunque esto era en Windows sólo existen

marcos de cliente rico bastante avanzada para ambos (NetBeans Platform y Eclipse RCP) y si usted planea en la construcción de algo no trivial, yo sugeriría que de buena gana se utiliza uno de estos: se obtiene aplicaciones modulares, mecanismos de actualización, el contexto -sensible ayuda, acciones consistentes sobre menús, teclas rápidas y barras de herramientas, gestión de ventanas y muchos otros excelentes nt funciones de forma gratuita.

Trabajé con Swing y lo prefiero a través de SWT, ya que tiene un modelo de componente más puro (con SWT debes preocuparte por liberar recursos, ya que estás usando widgets nativos), es verdaderamente multiplataforma (SWT funciona en Windows , MacOS y Linux, y ni siquiera está muy bien optimizado para los tres), y es más personalizable.

Probablemente no esté cometiendo un error al intentar SWT o incluso JavaFX, pero me sería difícil encontrar una buena razón para cambiar a SWT y probaría JavaFX solo para comprobar el estado de la técnica, suponiendo que la aplicación es solo una aplicación de exhibición.

Podría rociar un par de enlaces, pero puede buscar fácilmente y encontrar los resultados que no le interesan.

0

El NetBeans IDE gratuito tiene una herramienta de diseño visual para Swing y JavaFX.

-2

recomiendo no usar una herramienta de diseño; el código es muy difícil de leer y mantener.

también, si necesita acceso a la base de datos a objetos, netbeans dejará abiertos los administradores de entidad y creará dolores de cabeza y errores más adelante si su aplicación necesita usar más de un hilo.

5

También hay marcos de GUI que no están escritos en Java y que podrían servir para sus propósitos. Por ejemplo, GTK + está escrito en C pero hay enlaces de lenguaje a Java. Consulte java-gnome por ejemplo.

No sé lo bueno que es, pero una búsqueda rápida en Google también apareció Java bindings for Qt así que quizás también valga la pena investigar.

0

GWT también puede ser una gran herramienta UI para aplicaciones basadas en Java.Como el código hecho en GWT es el mismo que el código Java.Otra cosa es GWT su propia compatibilidad con navegadores.Tiene fábrica de widgets ricos, internacionalización, seguridad y muchas más características .

1

Creo JavaFX es una buena opción, ya que tiene una buena interfaz de usuario y todas las características de oscilación

Cuestiones relacionadas