2009-05-27 7 views
9

Después de gastar mucho tiempo y código en programación en Swing, pensé que esto no podía ser una construcción de GUI de Java de última generación. Después de no encontrar un generador visual de gui fácil de usar para el eclipse me topé con la construcción declarativa de GUI con kits de herramientas de interfaz de usuario XML ... y pensé: ¡Esto debe ser! Creo que es el camino correcto, fácil y también cercano a la programación web.¿XML o XUL son el futuro de la construcción de GUI en Java?

Pero después de mirar alrededor en la web y en SO, ¡tengo la impresión de que no es muy común! Aunque hay muchas implementaciones y API, parece que la mayoría están muertas y no tuvieron actualizaciones en los últimos 5 años ..

Así que me pregunto: ¿Tengo razón, el XML no está muy extendido en Java? GUIs? Y si es así, ¿cuáles son las razones? Tal vez no podría ser aceptado o tiene algunos inconvenientes importantes o las personas están haciendo todo en la web en lugar de fatclients o hay mejores alternativas, tal vez javafx?

Solo necesito saber si vale la pena pasar tiempo en esa área o buscar formas alternativas. Como no leo revistas para desarrolladores, no sé cuáles son las tendencias en la construcción de gui y qué tecnologías se cree que tienen futuro. Pero no puedo imaginar que la gente todavía pase tanto tiempo escribiendo aplicaciones desagradables (o swt).

+0

Debería considerar utilizar NetBeans para la creación de su GUI. Siempre me ha funcionado muy bien, incluso cambiar entre IDEs no es tan malo. – willcodejavaforfood

Respuesta

3

La respuesta de Sun parece ser JavaFX.

Tiene un lenguaje declarativo para especificar la GUI y también habrá aplicaciones de compilador.

+1

JavaFX es un lenguaje imperativo estándar de pantano, en realidad no es un lenguaje declarativo. Lo que sí tiene es soporte sintáctico para establecer una carga de propiedades en el momento de la inicialización (más enlaces). –

+0

Acabo de echar un vistazo más profundo a JavaFX y da una buena impresión. los controles básicos se implementan con un código mucho menor. las encuadernaciones son convenientes y, junto con el estilo css y los gráficos, y las próximas herramientas de creación es algo en lo que definitivamente dedicaré más tiempo. –

+0

Estaba investigando JavaFX 2.0 y estaba bastante contento con el producto hasta que vi que solo son compatibles con Windows. http://javafx.com/faq/#5 –

0

La respuesta seguramente no será XML. ¿Que problema estas tratando de resolver? Desea tener bloques de construcción reutilizables y una forma compacta de describirlos. No veo XML ayudándote allí.

[edit] La creación de un código java equivalente de XUL sería una mejora inmensa en XUL. XML hace que sea realmente, realmente difícil hacer una buena separación de preocupaciones y una vez y solo una vez. Sin embargo, es perfecto para el enfoque de la horda mongol. Necesitas una capa encima del columpio, solo proporciona los bloques de construcción.

+0

es solo que creo que la codificación de swing es desagradable. me gusta el diseño estructurado y jerárquico de documentos xml y la clara separación de funcionalidad, estructura y diseño. personalmente, creo que es mejor leer. y a juzgar por lo que vi sobre xul, necesitaba mucho menos código que el swing. –

0

Tendría la segunda sugerencia de Thilos con javaFX. Además, la tendencia apunta a webapps, por lo que creo que, a la larga, las interfaces de usuario basadas en web y javaFX se adaptarán a las GUI swing + swt.

1

Hace cinco o diez años XML era muy popular. Aunque está bien proporcionar algún tipo de estandarización para transferir datos entre sistemas heterogéneos, no es adecuado para la programación. Siempre comienza con lo fácil, y permite declarar todo. Pero cualquier sistema real requiere código. XML luego cae. También existe el problema de que XML es una mala sintaxis para los humanos, e incluso idiomas como Java son más fáciles de leer.

Por otro lado, existe una clara necesidad de los rieles de las GUI. Naked Objects es el intento razonable más cercano que he visto.

+3

Deberías aprender más sobre XUL. Nunca se usa solo, obviamente; está escrito con JavaScript (o, en el caso de Miro, Python). Intentalo. Es realmente asombroso. – niXar

3

Existe un prototipo de trabajo para e4 (Eclipse 4), que permitiría construir una GUI editando un modelo Ecore y personalizándolo a través de CSS.
Consulte this blog post para obtener más detalles e instrucciones para probarlo usted mismo.

1

Llegué a las mismas conclusiones que usted sobre los marcos declarativos que existen. No vale la pena aprender una nueva sintaxis de GUI a menos que sea ampliamente compatible. XUL como lenguaje de interfaz está muy extendido, pero no existe un marco de renderizado de Java para él.Diría que HTML + CSS + Javascript y un contenedor Servlet es la mejor plataforma Java para GUI hoy en día, pero lamentablemente no he encontrado una plataforma independiente para mostrar páginas web como una aplicación de escritorio.

0

Hago todo mi swing a mano y ninguna de mis aplicaciones es desagradable. Si no sabe cómo crear una interfaz de usuario útil y atractiva, no hay tecnología que lo ayude.

+1

¡genial! tal vez no me expresé muy bien. mis aplicaciones no son desagradables en absoluto (son las más bellas ...) pero el proceso de construir una GUI compleja con swing es claramente desagradable, al menos para mí :) –

1

Si usa Eclipse, ahora puede usar WindowBuilder para ayudarlo a crear aplicaciones Swing en un constructor visual de GUI fácil de usar. Ahora está disponible como una descarga gratuita, y Google ha donado el marco de construcción de la interfaz gráfica de usuario de Swing a la Fundación Eclipse.

Cuestiones relacionadas