Programa: Programa Apariencia visual Objetivo: Mediante código de java poder cambiar el entorno al programa Códigos: package demoaparienciavisual; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class DemoAparienciaVisual extends JFrame{ private final String cadenas[] = { "Metal", "Motif", "Windows" }; private UIManager.LookAndFeelInfo apariencias[]; private JRadioButton opcion[]; private ButtonGroup grupo; private JButton boton; private JLabel etiqueta; private JComboBox cuadroCombinado; String s1=""; // configurar la GUI public DemoAparienciaVisual() { super( "Demo de apariencia visual" ); Container contenedor = getContentPane(); // establecer panel para región NORTH de esquema BorderLayout JPanel panelNorte = new JPanel(); panelNorte.setLayout( new GridLayout( 3, 1, 0, 5 ) ); // establecer etiqueta para panel NORTH etiqueta = new JLabel( "Ésta es la apariencia visual Metal seleccionada", SwingConstants.CENTER ); panelNorte.add( etiqueta ); // establecer botón para panel NORTH boton = new JButton( "JButton" ); panelNorte.add( boton ); // establecer cuadro combinado para panel NORTH cuadroCombinado = new JComboBox( cadenas ); panelNorte.add( cuadroCombinado ); // crear arreglo para botones de opción opcion = new JRadioButton[ cadenas.length ]; // establecer panel para región SOUTH de esquema BorderLayout JPanel panelSur = new JPanel(); panelSur.setLayout( new GridLayout( 1, opcion.length ) ); // establecer botones de opción para panel SOUTH grupo = new ButtonGroup(); ManejadorEventos manejador = new ManejadorEventos(); for ( int cuenta = 0; cuenta < opcion.length; cuenta++ ) { opcion[ cuenta ] = new JRadioButton( cadenas[ cuenta ] ); opcion[ cuenta ].addItemListener( manejador ); grupo.add( opcion[ cuenta ] ); panelSur.add( opcion[ cuenta ] ); } // adjuntar paneles NORTH y SOUTH al panel de contenido contenedor.add( panelNorte, BorderLayout.NORTH ); contenedor.add( panelSur, BorderLayout.SOUTH ); // obtener información de la apariencia visual instalada apariencias = UIManager.getInstalledLookAndFeels(); setSize( 300, 200 ); setVisible( true ); opcion[ 0 ].setSelected( true ); } // fin del constructor de DemoAparienciaVisual // usar UIManager para cambiar la apariencia visual de la GUI private void cambiarLaAparienciaVisual( int valor ) { // cambiar la apariencia visual try { UIManager.setLookAndFeel( apariencias[ valor ].getClassName() ); SwingUtilities.updateComponentTreeUI( this ); s1= apariencias[ valor ].getClassName(); } // procesar problemas al cambiar la apariencia visual catch ( Exception excepcion ) { excepcion.printStackTrace(); } } public static void main( String args[] ) { DemoAparienciaVisual aplicacion = new DemoAparienciaVisual(); aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); } // clase interna privada para manejar eventos de botones de opción private class ManejadorEventos implements ItemListener { // procesar selección de apariencia visual del usuario public void itemStateChanged( ItemEvent evento ) { for ( int cuenta = 0; cuenta < opcion.length; cuenta++ ) if ( opcion[ cuenta ].isSelected() ) { etiqueta.setText( "Ésta es la apariencia visual " + s1 + " seleccionada"+cuenta ); cuadroCombinado.setSelectedIndex( cuenta ); cambiarLaAparienciaVisual( cuenta ); } } } // fin de la clase interna privada ManejadorEventos } // fin de la clase DemoAparienciaVisual Capturas: