Aprendiendo SWT
Publicado en Java el 3 de November, 2007 por Lek.Pues me he pasado 2 semanas migrando una aplicación interna de la empresa de Swing a SWT… ¿el motivo? En realidad, como se apunta al final en Why SWT? ninguno más allá del reto que supone aprender SWT. Las diferencias son grandes, pero salvables. En general, SWT parece un código más limpio y las equivalencias son bastante lógicas:
- Lo que en Swing es
JFrame, en SWT es unShell - Lo que en Swing es un
JPanel, en SWT es unComposite - En SWT no hay
JCheckBox,JRadioButton,JButton… todo sonButtoncon diferentes estilos JListyJComboBoxson, respectivamenteListyCombo- Todos los cuadros de texto que tiene Swing se agrupan en un solo componente,
Text(con diferentes estilos, aunque está muy limitado en comparación)
Podríamos seguir así, haciendo una lista interminable.
La principal diferencia, sin embargo, es que en SWT es obligatorio que todo lo que se haga sobre la interfaz gráfica se haga en el mismo hilo (thread) de ejecución. Es lo que llaman el UIthread, que será fácilmente reconocible porque es el que crea el objeto Display. Si queremos modificar el interfaz gráfico desde otro hilo, la clase Display nos provee de 2 métodos para hacerlo, asyncExec (Runnable) y su compañero syncExec (Runnable).
Y justo cuando termino, leo que Chuidiang posteó hace poco una pequeña guía de SWT y JFace que no me habría venido mal. Ahora tocará aprender JFace :)
JFace es una librería para facilitar ciertas cosas de SWT, es decir, no es una nueva capa que te abstrae completamente de SWT sino simplemente ciertos aspectos de GUIs que no vienen en SWT (que podrías hacer tú mismo, pero si ya está hecho…), como diálogos de error, de preferencias (y su gestión) y por el estilo.
# Blaxter 3 de November, 2007
Por lo poco que he visto de JFace, es (por decirlo pronto y mal) el Swing de SWT. Te hace dar menos vueltas para ciertos widgets, así que habrá que echarle un vistazo.
# Lek 4 de November, 2007