Tuesday, February 27, 2007

Some Desktop Features in Java SE 6

Hola a todos,
Esta vez quería hablarles del nuevo y recien lanzado JDK 6 más que todo de algunas nuevas mejoras que tiene en cuanto a interfaz se refiere. Realmente mejoraron bastente esta parte en este nuevo release. pero sin mas empecemos.
Splash Screens 
Para los que no son familiares con este término, los Splash Screens son pantallas/imagenes que aparecen al momento de lanzar una aplicación y su objetivo es estar ahí mientras el programa se va cargando, lo que hacen es hacer un feedback de lo que esta pasando, algunos programas o aplicaciones tardan en cargar entonces se usan estos Splash Screens para mostrarle al usuario que la aplicación esta cargando. A mi parecer se han vuelto como un standard en las nuevas interfaces de usuario. En fin ahora Java SE 6 provee esta funcionalidad pero de forma mucho mas mejorada, ahora se puede lanzar Splash Screen mucho mas antes incluso antes de que la VM empiece, puede cargar una imagen (gif) en una ventana simple sin nada de decoración. Hay dos formas de probarlo rápidamente la primera es escribiendo lo siguiente en la línea de comandos:
 java -splash:filename.gif SplashTest  
ojo que la imagen debe estar en el mismo path donde lo ejecutan o tb le pueden dar el pathde de la imagen. Esta forma es la mas sencilla de probar esta nueva funcionalidad.
la otra forma es usandola en nuestro archivo jar que lanza nuestra aplicación para esto debemos modificar elmanifest  , lo que se hace es poner el siguiente código en el archivo manifest.mf
  Manifest-Version: 1.0
     Main-Class: SplashTest
     SplashScreen-Image: filename.gif
 Ojo que en esta opción hay que poner la imagen dentro del JAR y darle el path.
Esta para mi es una gran mejora porque antes para poder hacer esto se podia usar Swing o AWT pero tardaba un montón porque primero tenía que cargar la VM, algunas dependencias, en resumen tardaba en aparecer. 
Lo bueno de esto es que tb se puede hacer varias funciones con Splash Screen (cambiar imagen, cerrarla, posición imagen, etc ) desde código usando la clase java.awt.SplashScreen
System Tray 
Esta nueva función es la que mas me gusta personalmente. Java SE 6 nos da al fin la posibilidad de acceder al system tray de windows y/o linux gracias a las clases SystemTray and TrayIcon  ambas en java.awt.
 
 
en las imágenes podemos ver ejemplos en windows y en Gnome. A mi parecer esto es bastante útil. El método estático SystemTray.isSupported() nos devuelve true si es que el system tray es soportado por el SO donde ejecutamos el código y false de no serlo. Yo creo que vale la pena probarlo más, ya que tb soporta el poner menús contextuales, íconos, esta bueno.
Grey Rect Arreglado
Este problema de interfaz lo podíamos ver cuando nuestra aplicación estaba dejabo de otra, cambiamos de ventana para regresar a la nuestra y veíamos como se refrescaba toda nuestra aplicación dejando una ventana ploma por algunos segundos hasta que termine el refrescado. Esto me ocurrió en interfaces Swing y yo creo que a todos. Al fin el equipo de Swing pudo corregir este problema en esta imagen podemos ver una comparativa entre las diferentes versiones:
 Increible como redujeron los tiempos no?
Otros detalles 
En fin para resumir un poco porqueno quiero aburrirlos, hicieron tb otras mejoras respecto al despliegue de texto en LCD's que usan subpixel para mejorar la resolución del texto ahora ya viene soportado en esta nueva versión sin importar que look and feel utilices en tus programas, aún lo probe pero apenas tenga tiempo lo hago :)
Otra cosa que ví y me intereso mucho es que viene con soporte para look and feel nativo, por ejemplo en JDK 5 traía soporte para poder utilizar los themes que venían en XP pero en vista microsooft cambio estos recursos y ya no son disponibles, clásico de ellos. En fin para resolver esto usaron un API llamando UxTheme que fue hecho por Windows Blinds, en teoria cualquiera puede utilizar este API para extenderlo y lo que se desee, bueno lo probaron en Windows Vista y funcionó perfectamente. Esto si que habría que probarlo el problema es que no hay windows vista para probar en casa :( 
Bueno esto ya se hizo muy largo en otro post hablare un poco sobre las mejores en tablas , ventanas, el nuevo Desktop API y algunas otras cosillas, para los que quieran ver mas sobre estas mejoras les recomiendo leer esteartículo  donde todo esta mucho mas explicado y con varios ejemplos y lecturas recomendadas.
salu2. 

No comments:

Post a Comment