Si no te importa que aspecto y comportamiento usan tus programas, puedes saltarte est� p�gina. Por ejemplo, la mayor�a de los programas de esta secci�n no especifican el aspecto y comportamiento, por lo que podremos ejecutar programas f�cilmente sin seleccionar el aspecto y comportamiento.
Cuando un programa no selecciona el aspecto y comportamiento, el controlador del Swing debe imaginarse cual utilizar. Primero chequea si el usuario ha especificado un aspecto y comportamiento preferidos. Si es as�, intentan utilizarlo. Si no es as�, o el usuario a elegido uno no v�lido, entonces el UI elige el aspecto y comportamiento Java.
�C�mo seleccionar el Aspecto y Comportamiento
Para especificar program�ticamente el aspecto y comportamiento, se usa el m�todo UIManager.setLookAndFeel. Por ejemplo, el c�digo en negrita del siguiente fragmento hace que el programa use el aspecto y comportamiento Java.
public static void main(String[] args) { try { UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName()); } catch (Exception e) { } new SwingApplication(); //Create and show the GUI. }
El argumento para setLookAndFeel es el nombre totalmente cualificado de la subclase apropiado de LookAndFeel. Para especificar el aspecto y comportamiento Java, hemos usado el m�todo getCrossPlatformLookAndFeelClassName. Si queremos especificar el aspecto y comportamiento nativo para cualquier platadorma en la que el usuario ejecute el programa, usaremos getSystemLookAndFeelClassName, en su lugar. PAra especificar un UI, podemos usar el nombre real de la clase. Por ejemplo, si hemos dise�ado un programa para que parezca mejor con el aspecto y comportmiento Windows, deber�amos usar este c�digo para seleccionarlo.
UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
Aqu� podemos ver algunos de los argumentos que podemos usar con setLookAndFeel.
- UIManager.getCrossPlatformLookAndFeelClassName()
- Devuelve el string para uno de los aspecto-y-comportamiento garantizados que funciona -- el aspecto y comportamiento Java.
- UIManager.getSystemLookAndFeelClassName()
- Especifica el aspecto y comportamiento de la plataforma actual. En plataformas Win32, esto especifica el aspecto y comportamiento Windows. En plataforma Mac OS , esto especifica el aspecto y comportamiento Mac OS. En plataformas Sun, especifica el aspecto y comportamiento CDE/Motif.
- "javax.swing.plaf.metal.MetalLookAndFeel"
- Especifica el aspecto y comportamiento Java. (El nombre c�digo para este aspecto y comportamiento era Metal.) Este string es el valor devuelto por el m�todo getCrossPlatformLookAndFeelClassName.
- "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"
- Especifica el aspecto y comportamiento Windows. Actualmente, s�lo podemos usar este aspecto y comportamiento en systemas Win32.
- "com.sun.java.swing.plaf.motif.MotifLookAndFeel"
- Especifica el aspecto y comportamiento CDE/Motif. Este puede ser utilizado sobre cualquier plataforma.
- "javax.swing.plaf.mac.MacLookAndFeel"
- Especifica el aspecto y comportamiento Mac OS. En el momento de crear este tutor, este aspecto y comportamiento est�ba en fase bera y no est� disponible como parte del JFC�1.1 o JDK�1.2. en su lugar, puedes descargarlo, siguiendo las instrucciones de la JFC Home Page.
No estamos limitados a los argumentos precedentes. Podemos especificar el nombre de cualquier aspecto y comportamiento que est� en nuestro class path.
�C�mo elige el UI el Aspecto y Comportamiento
Aqu� est�n los pasos que sigue el controlador del UI para determinar el aspecto y comportamiento cuando se inicializa a s� mismo.
- Si el programa selecciona el aspecto y comportamiento antes de crear ning�n componente, el UI trata de crear un ejemplar de la clase especificada. Si tiene �xito, todos los componentes usar�n ese aspecto y comportamiento.
- Si el programa no ha tenido �xito con el aspecto y comportamiento especificado, antes de crear el primer componente, el UI comprueba si el usuario ha especificado uno en un fichero llamado swing.properties. Busca el fichero en el directorio lib de la versi�n de Java. Por ejemplo, si estamos usando el int�rprete Java en javaHomeDirectory\bin, entonces el fichero swing.properties (si existe) est� en javaHomeDirectory\lib. Si el usuario ha especificado un aspecto y comportamiento, de nuevo el UI intenta ejemplarizar la clase especificada. Aqu� hay un ejemplo de los contenidos de un fichero swing.properties.
# Swing properties swing.defaultlaf=com.sun.java.swing.plaf.motif.MotifLookAndFeel
- Si ni el programa ni el usuario han especificado un aspecto y comportamiento adecuados, el programa usar el aspecto y comportamiento Java.
�Cambiar el Aspecto y Comportamiento despu�s de la Arrancada
Se puede cambiar el aspecto y comportamiento con setLookAndFeel incluso despu�s de que el GUI del programa sea visible. Para hacer que los componentes existente, reflejen el nuevo aspecto y comportamiento, se llama al m�todo SwingUtilities updateComponentTreeUI una vez por cada contenedor de alto nivel. Luego podr�amos desear redimensionar cada uno de nuestros contenedores de alto nivel para reflejar los nuevos tama�os de sus componentes. Por ejemplo.
UIManager.setLookAndFeel(lnfName); SwingUtilities.updateComponentTreeUI(frame); frame.pack();