Tutorial de Java

Swing, Revisión

Anterior | Siguiente

Para iniciar la entrada en Swing, qué mejor que implementar de nuevo otra versión del saludo inicial, pero con los componentes Swing, así que la versión del "Hola Mundo!", se convierte ahora en JHolaMundo.java, cuyo código es el que sigue.

import com.sun.java.swing.*;

public class JHolaMundo extends JFrame {
  
  public static void main( String argv[] ) {
    new JHolaMundo();
  }
  
  JHolaMundo() {
    JLabel hola = new JLabel( "Hola Mundo!" );

    getContentPane().add( hola,"Center" );
    setSize( 200,100);
    setVisible( true );
  }
}

El siguiente ejemplo, java1401.java, aunque ya un poco más en serio, también es muy sencillo y en él se pueden observar un poco mejor los cambios que introduce Swing, que son casi exclusivamente de nomenclatura.

import java.awt.*;
import java.awt.event.*;
import com.sun.java.swing.*;

public class java1401 extends JPanel {
  JButton boton1 = new JButton( "JButton 1" );
  JButton boton2 = new JButton( "JButton 2" );
  JTextField texto = new JTextField( 20 );
  
  public java1401() {
    ActionListener al = new ActionListener() {
      public void actionPerformed( ActionEvent evt ) {
	String nombre = ( (JButton)evt.getSource()).getText();
	texto.setText( nombre+" Pulsado" );
      }
    };
    boton1.addActionListener( al );
    boton1.setToolTipText( "Soy el JBoton 1" );
    add( boton1 );
    boton2.addActionListener( al );
    boton2.setToolTipText( "Soy el JBoton 2" );
    add( boton2 );
    texto.setToolTipText( "Soy el JCampoDeTexto" );
    add( texto );
  }
  
  public static void main( String args[] ) {
    JFrame ventana = new JFrame( "Tutorial de Java, Swing" );
    
    ventana.addWindowListener( new WindowAdapter() {
      public void windowClosing( WindowEvent evt ){
	System.exit( 0 );
      }
    } );
    ventana.getContentPane().add( new java1401(),BorderLayout.CENTER );
    ventana.setSize( 300,100 );
    
    ventana.setVisible( true );
  }
} 

Si se exceptúa la nueva sentencia import, el resto del código parece de AWT con una J delante de cada nombre de componente. Además, no se puede añadir algo con add() a un JFrame, sino que hay que tener antes su contenido, tal como muestra tanto este ejemplo, como el anterior del saludo. Pero, vamos, con una simple conversión se tiene toda la potencia de Swing.

Las dos imágenes anteriores corresponden a la captura de la ejecución del ejemplo, en Solaris y en Windows, y ya se puede observar que el parecido con el AWT se va alterando un poco, a mejor por supuesto, debido a que se está utilizando un look, o apariencia gráfica, diferente, en este caso el que JavaSoft llama Metal y que es el que por defecto se usa, aunque se puede también seleccionar el tipo de botones, cajas, textos, etc. con la apariencia de Window, Motif o Mac.

Navegador

Home | Anterior | Siguiente | Indice | Correo