|
Look And Feel |
Anterior | Siguiente |
Cada ejecutable Java tiene un objeto UIManager que determina el Look-and-Fee, es decir, la apariencia en pantalla y funcionamiento, que van a tener los Componentes Swing de ese ejecutable. El Look-and-Feel es la apariecia que se proporciona a los diferentes Componentes: botones, cajas de texto, cajas de selección, listas, etc. Java utiliza el interfaz gráfico de la plataforma sobre la que se está ejecutando para presentar los Componentes del AWT con el aspecto asociado a esa plataforma, de este modo los programas que se ejecuten en Windows tendran esa apariencia y los que se ejecuten en Unix tendrán apariencia Motif. Pero Swing permite la selección de esta apariencia gráfica, independientemente de la plataforma en que se esté ejecutando; tanto es así que, la apariencia por defecto de los Componentes Swing se denomina Metal, y es propia de Java. Teniendo siempre en cuenta las restricciones impuestas por el control de seguridad, se puede seleccionar la apariencia, o Look-and-Feel de los Componentes Swing invocando al método setLookAndFeel() del objeto UIManager correspondiente al ejecutable. La forma en que se consigue esto es porque cada objeto JComponent tiene un objeto ComponentUI correspondiente que realiza todas las tareas de dibujo, manejo de eventos, control de tamaño, etc. para ese JComponent. Una de las ventajas que representan las capacidades de Look&Feel incorporadas a Swing para las empresas, es el poder crear un interfaz gráfico estándar y coporativo. Con el crecimiento de las intranets se están soportando muchas aplicaciones propias que deben ejecutarse en varias plataformas, ya que lo más normal es que en una empresa haya diferentes plataformas. Swing permite ahora que las aplicaciones porpias diseñadas para uso interno de la empresa tengan una apariencia exactamente igual, independientemente de la plataforma en que se estén ejecutando. Y es que hay pequeñas cosas que vuelven loco al usuario al cambiar de entorno, por ejemplo:
En la imagen se puede observar una revisión gráfica de los interfaces de usuario más utilizados actualmente. La verdad es que la frase hecha famosa por Sun, en su anuncio de Java de "Escribir una vez, ejecutar en cualquier lugar", no se ha hecho realidad hasta que han aparecido las Java Foundation Classes, incorporando a Swing. Generalmente, el código Java, con AWT, se puede desarrollar y probar completamente sobre una plataforma, pero debido a las diferencias entre las máquinas virtuales de las distintas plataformas o sistemas operativos, se pueden presentar desde pequeños problemas de presentación gráfica hasta grandes incosistencias, que pueden llegar a que la aplicación caiga durante la ejecución o, sencillamente, que no arranque. El problema en realidad no es Java, sino el AWT; más concretamente, las cosas que los diseñadores del AWT han tenido que dejar de lado para hacer portable el interfaz de usuario. Con Swing, estos problemas van a quedar relegados a la historia y, se contarán como anécdotas. Utilizando las librerías de Look&Feel, las aplicaciones se pueden escribir y probar utilizando un único interfaz. Cuando esas aplicaciones sean portadas a otras plataformas, el interfaz permanecerá invariable. No obstante, las librerías que vienen con Swing, pueden resultar indeseables en algunas ocasiones; algunas se ejecutan sobre una sola plataforma, otras no satisfacen el gusto de los usuarios. Así que también se puede crear un Look&Feel propio que satisfaga a todos y simplifique la tranferencia de código de una plataforma a otra. En la imagen anterior se muestra un ejemplo de Look&Feel creado a partir de las herramientas proporcionadas por Swing. En las siguientes imágenes se muestran algunas otras alternativas. En general, para la implementación de una apariencia nueva, hay que tener en cuenta que aunque en principio pueda parecer muy interesante, y se piense que todas las ideas son buenas para mejorar el diseño de un interfaz gráfico; los usuarios que ya están utilizando el ordenador están acostumbrados a lo que les ofrece la plataforma con la que trabajan, y el interfaz que se diseñe ha de resultarles familiar; en caso contrario, la curva de aprendizaje del nuevo interfaz puede resultar tan abrupta que no se tome en cuenta el nuevo diseño. Por lo tanto, se debe utilizar con cautela el poder que pone en manos de los programadores/diseñadores la posibilidad de desarrollar un Look&Feel propio. No obstante, y como el lector podrá observar en los ejemplos de interfaces que se muestran, en el caso de crear un nuevo interfaz, hay que tener presente que la imagen es mucho más importante que el borde, es decir, que no tiene por qué haber un borse separando todos los elementos. Además, el gris no es el único color neutro que se puede utilizar, y el entorno debe ser consistente con los que ya se conocen. Precisamente, la imagen siguiente reproduce ventanas creadas con algunos de los widgets más comunes en los entornos gráficos más utilizados actualmente. Java incorpora su propio Look&Feel por defecto, cuyo nombre es Metal, y que se muestra a continuación. En versiones anteriores de Swing, también se proporcionaba el entorno Organic, en dos versiones, Santa Fe y Vancouver. La imagen siguiente reproduce un ejemplo del entorno Organic Santa Fe. Y el ejemplo que aparece a continuación, representa la apariencia que ofrecía el Look&Feel Organic Vancouver. El Look&Feel Metal, que se ha utilizado en casi todos los ejemplos de este capítulo, se basa en unos principios muy sencillos, para así poder adaptarse mucho mejor a los gustos del usuario. Por ejemplo, su esquema de colores es muy simple, utilizando solamente 8 colores y pudiendo seleccionarse cualesquiera, esto hace que ya haya muchos usuarios que se han dedicado a crear Temas, o esquemas de color, para satisfacer cualquier gusto por parte del usuario que se siente delante de la pantalla. Además de los colores, se permiten cambiar los iconos, las fuentes de caracteres y los bordes. La imagen reproduce uno de estos temas alternativos. La apariencia de todos los elementos que aparecen en el Look&Feel Metal, son los que se muestran en las imágenes de la página. |
|