Actualmente soy desarrollador web y estoy pensando en crear mi primera aplicación de escritorio real. La idea es crear una herramienta que automatice una tarea muy repetitiva en una aplicación web donde no hay API disponible.
Sé que quiero usar Java. Lo utilicé antes para material web, conozco bastante bien la sintaxis y quiero que la aplicación sea multiplataforma lo más fácil posible.
Donde no estoy tan seguro es si debo usar SWT o Swing. Como mi audiencia principal usa Windows, quiero verlo lo más nativo posible allí. Linux y Mac deberían funcionar, pero el aspecto no es tan importante aquí.
Entonces, ¿cuáles son los argumentos a favor y en contra de cada UI Framework, Swing o SWT?
Gracias.
PD: desarrollo en Windows usando Eclipse. Pero estaba pensando en jugar con Netbeans.
Respuestas:
Swing profesional:
Contras Swing:
Pros SWT:
Contras SWT:
fuente
Una cosa importante a tener en cuenta es que algunos usuarios y algunos revendedores (Dell) instalan una máquina virtual de 64 bits en su Windows de 64 bits, y no puede usar la misma biblioteca SWT en máquinas virtuales de 32 bits y 64 bits.
Esto significa que necesitará distribuir y probar diferentes paquetes dependiendo de si los usuarios tienen una máquina virtual Java de 32 o 64 bits. Vea este problema con Azureus, por ejemplo, pero también lo tiene con Eclipse, donde a partir de hoy las compilaciones en la página de descarga frontal no se ejecutan en una máquina virtual de 64 bits.
fuente
swing profesional:
Pero en el fondo no sugeriría usar swing 'puro' o swt ;-) Hay varios marcos de aplicación para swing / swt out. Mira aquí . Los jugadores más importantes son netbeans (swing) y eclipse (swt). Otro buen marco podría ser el grifo y un buen 'conjunto de componentes' es el pivote (swing). Griffon es muy interesante porque integra muchas bibliotecas y no solo swing ; también pivote, swt, etc.
fuente
Usaría Swing por un par de razones.
Ha existido por más tiempo y se le ha aplicado más esfuerzo de desarrollo. Por lo tanto, es probable que tenga más funciones completas y (tal vez) tenga menos errores.
Hay mucha documentación y otras pautas para producir aplicaciones de alto rendimiento.
Si desea crear una aplicación con muchas funciones, puede consultar el RCP de NetBeans (Plataforma de cliente enriquecido). Hay una curva de aprendizaje, pero puedes juntar buenas aplicaciones rápidamente con un poco de práctica. No tengo suficiente experiencia con la plataforma Eclipse para hacer un juicio válido.
Si no desea usar todo el RCP, NetBeans también tiene muchos componentes útiles que se pueden extraer y usar de forma independiente.
Otro consejo: busca en diferentes gerentes de diseño. Me hicieron tropezar durante mucho tiempo cuando estaba aprendiendo. Algunos de los mejores ni siquiera están en la biblioteca estándar. Las herramientas MigLayout (tanto para Swing como SWT) y JGoodies Forms son dos de las mejores en mi opinión.
fuente
Elegiría swing solo porque es "nativo" para Java.
Además, eche un vistazo a http://swingx.java.net/ .
fuente
Para sus requisitos, parece que la conclusión será usar Swing, ya que es un poco más fácil comenzar y no está tan integrado a la plataforma nativa como SWT.
Swing generalmente es una apuesta segura.
fuente
Interesante pregunta. No conozco SWT demasiado bien para presumir (a diferencia de Swing y AWT), pero aquí está la comparación realizada en SWT / Swing / AWT.
http://www.developer.com/java/other/article.php/10936_2179061_2/Swing-and-SWT-A-Tale-of-Two-Java-GUI-Libraries.htm
Y aquí está el sitio donde puede obtener tutoriales sobre básicamente cualquier cosa en SWT ( http://www.java2s.com/Tutorial/Java/0280__SWT/Catalog0280__SWT.htm )
Espero que tome una decisión correcta (si hay decisiones correctas en la codificación) ... :-)
fuente
Si planea crear aplicaciones funcionales completas con más de un puñado de características, le sugiero que salte directamente al uso de Eclipse RCP como marco.
Si su aplicación no crecerá demasiado o sus requisitos son demasiado únicos para ser manejados por un marco comercial normal, puede saltar con seguridad con Swing.
Al final del día, te sugiero que pruebes ambas tecnologías para encontrar la que más te convenga. Al igual que Netbeans vs Eclipse vs IntelliJ, no existe la respuesta correcta absoluta aquí y ambos marcos tienen sus propios inconvenientes.
Pro Swing:
SWT profesional:
fuente
Una cosa a considerar: lectores de pantalla
Por algunas razones, algunos componentes de Swing no funcionan bien cuando se usa un lector de pantalla (y Java AccessBridge para Windows). Sepa que diferentes lectores de pantalla resultan en un comportamiento diferente. Y en mi experiencia, el SWT-Tree funciona mucho mejor que el Swing-Tree en combinación con un lector de pantalla. Por lo tanto, nuestra aplicación terminó usando componentes SWT y Swing.
Para distribuir y cargar la biblioteca SWT adecuada, puede encontrar útil este enlace: http://www.chrisnewland.com/select-correct-swt-jar-for-your-os-and-jvm-at-runtime-191
fuente
SWT fue creado como respuesta a la lentitud de Swing a principios de siglo. Ahora que las diferencias en el rendimiento se están volviendo insignificantes, creo que Swing es una mejor opción para sus aplicaciones estándar. SWT / Eclipse tiene un marco agradable que ayuda con mucho código de placa de caldera.
fuente