Hay bastantes marcos de interfaz gráfica de usuario para Java, pero ¿cuál se reconoce como el marco de elección actual?
Lo siguiente es mi comprensión de los diferentes marcos, corríjame si estoy equivocado. Este es un conjunto de preguntas muy poco definido, pero sigo pensando que es valioso para cualquiera que esté pensando en crear aplicaciones ricas de GUI.
Es la base del swing, funciona bien pero carece de componentes avanzados. Si tiene la intención de crear aplicaciones ricas, AWT probablemente no sea el camino a seguir. Sin embargo, para aplicaciones GUI más pequeñas que no requieren interfaces de usuario enriquecidas. Esto podría encajar perfectamente, ya que es un marco probado y probado.
Basado en AWT como se indicó anteriormente. En su infancia, se consideraba lento y con errores, e hizo que IBM creara SWT para Eclipse. Sin embargo, con Java 5 (¿o 6?) Swing se convirtió en el marco de elección para crear nuevas aplicaciones. Swing tiene muchos componentes ricos, pero aún faltan en algunas áreas. Un ejemplo es que no hay un componente TreeTable con todas las funciones que pueda ordenar y filtrar / buscar.
Creado por IBM para Eclipse, parecían pensar que Swing no era adecuado para Eclipse en ese momento. Por sí solo es de bajo nivel, y utiliza los widgets nativos de la plataforma a través de JNI. No está relacionado con Swing y AWT en absoluto. Sin embargo, su API es algo torpe y no intuitiva. Tienen algunos componentes avanzados como una TreeTable. (pero no creo que admitan la clasificación y el filtrado fuera de la caja). SWT utiliza algunos enlaces nativos (¿a través de JNI?) Y la queja en Internet es que este marco no debe usarse en los proyectos de hoy. (¿Por qué no?)
Basado en Swing y su misión es crear componentes ricos para swing. Aún en desarrollo. (aunque no muy activo). Tenga un conjunto de componentes muy agradable, como por ejemplo TreeTable. Pero la TreeTable no admite el filtrado y la clasificación hasta donde yo sé. Sin embargo, admite la búsqueda con resaltado.
Tenga en cuenta que SwingX son componentes (AFAIU) que son extensiones o composiciones de componentes Swing existentes
JGoodies
Un marco del que no sé nada ... ¿Cuáles son sus fortalezas y debilidades? ¿Qué distingue a Jgoodies del resto?
JGoodies OTOH se trata de PLAF y diseños.
El último buque insignia de Java / Oracle. promete ser el estándar de facto en el desarrollo de aplicaciones web o de escritorio enriquecidas.
Representa la interfaz de usuario utilizando Java2D, minimizando así el impacto de los legados (IMO, hinchado) de Swing y AWT. (@Augustus Thoo)
Su enfoque principal parece estar en RIA (aplicaciones de Internet enriquecidas), pero parece que también se puede aplicar a aplicaciones de escritorio. Y como comentario personal, ¡parece muy interesante! Me gusta especialmente que sea un proyecto apache.
https://cwiki.apache.org/PIVOT/frequently-asked-questions-faq.html
Un contenedor de Java para la biblioteca qt nativa que está escrita en c / c ++. Muy potente, ampliamente utilizado y aceptado. Tiene muchos componentes GUI y una API fácil de usar.
Entonces, para tratar de resumir un poco de lo que estoy preguntando:
Digamos que quería crear una aplicación de escritorio hoy en Java que involucra muchos componentes avanzados, ¿qué debo elegir? ¿Y por qué?
¿Cuál de estos marcos debería reconocerse como obsoleto y cuáles deberían reconocerse como marcos del futuro lejano?
¿Cuál es el marco de facto-estándar de hoy y qué herramientas utiliza para crear aplicaciones Java GUI?
Podría lamentar preguntar esto, pero lo intentaré de todos modos:
Se dice que C # /. Net tiene un muy buen conjunto de componentes fáciles de usar que se pueden flexionar en todas las direcciones posibles. Y después de investigar diferentes marcos de Java hasta cierto punto, parece que no puedo decir lo mismo sobre Java. ¿Por qué es esto? ¿Por qué Java (que es el lenguaje de programación más utilizado en el mundo) no tiene el mismo conjunto de componentes GUI?
¿Es solo que Java ha basado sus componentes de interfaz gráfica de usuario en un nivel mucho más bajo, y es posible escribir todos estos componentes avanzados que estoy buscando, pero usted tiene que hacer mucho, si no todo, el trabajo usted mismo?