Java - look and feel windows - metal

 
Vista:

look and feel windows - metal

Publicado por Leo (12 intervenciones) el 16/04/2006 19:22:06
Hola!

Tengo en mi aplicacion, que corre en Windows: un JFrame, JInternalFrames y JDialogs.
El JFrame y los JDialogs salen con aspecto windows y las JInternal con aspecto metal.
Me gustaria que todas salieran con aspecto metal.

He pasado todas a windows con:

try {
UIManager.setLookAndFeel
("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (Exception e) {};

Al inicio de la aplicación en el main y funciona bien, pero al cambiarle al "javax.swing.plaf.metal.MetalLookAndFeel" no funciona.

Gracias espero sus comentarios

Atte: Leo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:look and feel windows - metal

Publicado por Kike (72 intervenciones) el 17/04/2006 00:31:42
Aqui pongo un ejemplo que maneja las apariencias visuales en Java, extraido de "Como Programar en Java":

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class DemoAparienciaVisual extends JFrame{

private final String nombres[] = { "Metal", "Motif", "Windows" };
private UIManager.LookAndFeelInfo apariencias[];
private JRadioButton opciones[];
private ButtonGroup grupo;
private JButton boton;
private JLabel etiqueta;
private JComboBox combo;

private DemoAparienciaVisual(){

super( "Apariencias visuales en Java" );
Container contenedor = getContentPane();

JPanel pnlSuperior = new JPanel( new GridLayout( 3, 1, 0, 5 ) );
etiqueta = new JLabel( "Apariencia visual Metal seleccionada",
SwingConstants.CENTER );
pnlSuperior.add( etiqueta );

boton = new JButton( "Boton" );
pnlSuperior.add( boton );
combo = new JComboBox( nombres );
pnlSuperior.add( combo );

opciones = new JRadioButton[ nombres.length ];

JPanel pnlInferior = new JPanel( new GridLayout( 1, opciones.length ) );
grupo = new ButtonGroup();

EventosBotonesRadio manejador = new EventosBotonesRadio();
for ( int x = 0; x < opciones.length; x ++ ){
opciones[ x ] = new JRadioButton( nombres[ x ] );
opciones[ x ].addItemListener( manejador );
grupo.add( opciones[ x ] );
pnlInferior.add( opciones[ x ] );
}

contenedor.add( pnlSuperior, BorderLayout.NORTH );
contenedor.add( pnlInferior, BorderLayout.SOUTH );
apariencias = UIManager.getInstalledLookAndFeels();

setSize( 300, 200 );
setVisible( true );
setResizable( false );

opciones[ 0 ].setSelected( true );

setVisible( true );

}

private void cambiarApariencia( int valor ){
try{
UIManager.setLookAndFeel( apariencias[ valor ].getClassName() );
SwingUtilities.updateComponentTreeUI( this );
}
catch( Exception exc ){
JOptionPane.showMessageDialog( this, "Error al tratar de cambiar apariencia visual" );
}
}

private class EventosBotonesRadio implements ItemListener{

public void itemStateChanged( ItemEvent evento ){
for ( int x = 0; x < opciones.length; x ++ ){
if ( opciones[ x ].isSelected() ){
etiqueta.setText( "Apariencia visual " + nombres[ x ] + " seleccionada" );
combo.setSelectedIndex( x );
cambiarApariencia( x );
}
}
}
}

public static void main( String args[] ){
DemoAparienciaVisual ventana = new DemoAparienciaVisual();
}

}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:look and feel windows - metal

Publicado por Leo (12 intervenciones) el 17/04/2006 05:07:22
Hola!

Gracias por el código, lo estuve probando y me sirvió para darme cuenta como funciona el look and feel, y ahora que solucioné el problema creo que no era tan complicado como pensé.
Solo puse la línea:

JFrame.setDefaultLookAndFeelDecorated(true);

antes de instanciar mi ventana principal y ya todo se cambio a aspecto metal.

De nuevo gracias, por tomarte el tiempo y responder mi pregunta tan rápido.

Atte: Leo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar