Suscribirse al Feed
13Dic

[código] GUIs en Java - Administración de Contenido (FlowLayout, BorderLayout y GridLayout)

(anterior) En esta sección se presentan varios de los componentes de Java para la creación de interfaces gráficas de usuario. Los componentes de Swing pueden personalizarse para asemejarse a la apariencia de la plataforma computacional en la que se ejecute el programa, o pueden usar la apariencia visual de Java para brindar una interfaz idéntica en cualquier Sistema Operativo. Esta sección se centra en el manejo de eventos de los administradores de contenido: FlowLayout, BorderLayout y GridLayout.

Demostración de las alineaciones de FlowLayout


// Demostración de las alineaciones de FlowLayout.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class DemoFlowLayout extends JFrame
{
   private JButton botonIzquierda, botonCentro, botonDerecho;
   private Container contenedor;
   private FlowLayout esquema;

   // configurar GUI y registrar componentes de escucha de los botones
   public DemoFlowLayout()
   {
      super( "Demostración de FlowLayout" );

      esquema = new FlowLayout();
      contenedor = getContentPane();
      contenedor.setLayout( esquema );

      // establecer objeto botonIzquierda y registrar componente de escucha
      botonIzquierda = new JButton( "Izquierda" );
      contenedor.add( botonIzquierda );
      botonIzquierda.addActionListener(

         new ActionListener() {  // clase interna anónima

            // procesar evento de botonIzquierda
            public void actionPerformed( ActionEvent evento )
            {
               esquema.setAlignment( FlowLayout.LEFT );

               // realinear componentes adjuntos
               esquema.layoutContainer( contenedor );
            }

         } // fin de la clase interna anónima

      ); // fin de la llamada a addActionListener

      // establecer objeto botonCentro y registrar componente de escucha
      botonCentro = new JButton( "Centro" );
      contenedor.add( botonCentro );
      botonCentro.addActionListener(

         new ActionListener() {  // clase interna anónima

            // procesar evento de botonCentro
            public void actionPerformed( ActionEvent evento )
            {
               esquema.setAlignment( FlowLayout.CENTER );

               // realinear componentes adjuntos
               esquema.layoutContainer( contenedor );
            }
         }
      );

      // establecer objeto botonDerecho y registrar componente de escucha
      botonDerecho = new JButton( "Derecha" );
      contenedor.add( botonDerecho );
      botonDerecho.addActionListener(

         new ActionListener() {  // clase interna anónima

            // procesar evento de botonDerecho
            public void actionPerformed( ActionEvent evento )
            {
               esquema.setAlignment( FlowLayout.TRAILING);

               // realinear componentes adjuntos
               esquema.layoutContainer( contenedor );
            }
         }
      );

      setSize( 300, 75 );
      setVisible( true );

   } // fin del constructor DemoFlowLayout

   public static void main( String args[] )
   {
      JFrame.setDefaultLookAndFeelDecorated(true);
      DemoFlowLayout aplicacion = new DemoFlowLayout();
      aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
   }

} // fin de la clase DemoFlowLayout

Descargar código fuente

Demostración de BorderLayout


// Demostración de BorderLayout.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class DemoBorderLayout extends JFrame implements ActionListener
{
   private JButton botones[];
   private final String nombres[] = { "Ocultar norte", "Ocultar sur",
      "Ocultar este", "Ocultar oeste", "Ocultar centro" };
   private BorderLayout esquema;

   // configurar GUI y el manejo de eventos
   public DemoBorderLayout()
   {
      super( "Demostración de BorderLayout" );

      esquema = new BorderLayout( 5, 5 ); // espacios libres de 5 píxeles

      // obtener panel de contenido y establecer su esquema
      Container contenedor = getContentPane();
      contenedor.setLayout( esquema );

      // instanciar objetos botón
      botones = new JButton[ nombres.length ];

      for ( int cuenta = 0; cuenta < nombres.length; cuenta++ ) {
         botones[ cuenta ] = new JButton( nombres[ cuenta ] );
         botones[ cuenta ].addActionListener( this );
         botones[ cuenta ].setToolTipText("Borra del contenedor al boton "+nombres[cuenta]);
      }

      // colocar botones en BorderLayout; no importa el orden
      contenedor.add( botones[ 0 ], BorderLayout.NORTH );
      contenedor.add( botones[ 1 ], BorderLayout.SOUTH );
      contenedor.add( botones[ 2 ], BorderLayout.EAST );
      contenedor.add( botones[ 3 ], BorderLayout.WEST );
      contenedor.add( botones[ 4 ], BorderLayout.CENTER ); 

      setSize( 350, 200 );
      setVisible( true );

   } // fin del constructor de DemoBorderLayout

   // manejar eventos de botón
   public void actionPerformed( ActionEvent evento )
   {
      for ( int cuenta = 0; cuenta < botones.length; cuenta++ )

         if ( evento.getSource() == botones[ cuenta ] )
            botones[ cuenta ].setVisible( false );
         else
            botones[ cuenta ].setVisible( true );

      // re-esquematizar el panel de contenido
      esquema.layoutContainer( getContentPane() );
   }

   public static void main( String args[] )
   {
      JFrame.setDefaultLookAndFeelDecorated(true);
      DemoBorderLayout aplicacion = new DemoBorderLayout();
      aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
   }

} // fin de la clase DemoBorderLayout

Descargar código fuente

Demostración de GridLayout

// Demostración de GridLayout.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class DemoGridLayout extends JFrame implements ActionListener
{
   private JButton botones[];
   private final String nombres[] =
      { "uno", "dos", "tres", "cuatro", "cinco", "seis" };
   private boolean alternar = true;
   private Container contenedor;
   private GridLayout cuadricula1, cuadricula2;

   // configurar GUI
   public DemoGridLayout()
   {
      super( "Demostración de GridLayout" );

      // establecer esquemas
      cuadricula1 = new GridLayout( 2, 3, 10, 10 );
      cuadricula2 = new GridLayout( 3, 2 );

      // obtener panel de contenido y establecer su esquema
      contenedor = getContentPane();
      contenedor.setLayout( cuadricula1 );

      // crear y agregar botones
      botones = new JButton[ nombres.length ];

      for ( int cuenta = 0; cuenta < nombres.length; cuenta++ ) {
         botones[ cuenta ] = new JButton( nombres[ cuenta ] );
         botones[ cuenta ].addActionListener( this );
         botones[ cuenta ].setToolTipText("Cambia el esquema de GridLayout");
         contenedor.add( botones[ cuenta ] );
      }

      setSize( 300, 150 );
      setVisible( true );

   } // fin del constructor de DemoGridLayout

   // manejar eventos de botón, alternando entre los esquemas
   public void actionPerformed( ActionEvent evento )
   {
      if ( alternar )
         contenedor.setLayout( cuadricula2 );
      else
         contenedor.setLayout( cuadricula1 );

      alternar = !alternar;   // establecer alternar en el valor opuesto
      contenedor.validate();
   }

   public static void main( String args[] )
   {
      JFrame.setDefaultLookAndFeelDecorated(true);
      DemoGridLayout aplicacion = new DemoGridLayout();
      aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
   } 

} // fin de la clase DemoGridLayout

Descargar código fuente

Uso de un objeto JPanel

// Uso de un objeto JPanel para ayudar a distribuir los componentes.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class DemoPanel extends JFrame
{
   private JPanel panelBotones;
   private JButton botones[];

   // configurar GUI
   public DemoPanel()
   {
      super( "Demostración JPanel" );

      // obtener panel de contenido
      Container contenedor = getContentPane();

      // crear arreglo botones
      botones = new JButton[ 5 ];

      // configurar panel y establecer su esquema
      panelBotones = new JPanel();
      panelBotones.setLayout( new GridLayout( 1, botones.length ) );

      // crear y agregar botones
      for ( int cuenta = 0; cuenta < botones.length; cuenta++ ) {
         botones[ cuenta ] = new JButton( "Botón " + ( cuenta + 1 ) );
         panelBotones.add( botones[ cuenta ] );
      }

      contenedor.add( panelBotones, BorderLayout.SOUTH );

      setSize( 425, 150 );
      setVisible( true );

   } // fin del constructor de DemoPanel

   public static void main( String args[] )
   {
      JFrame.setDefaultLookAndFeelDecorated(true);
      DemoPanel aplicacion = new DemoPanel();
      aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
   }

} // fin de la clase DemoPanel

Descargar código fuente

Etiquetas: ,
Los ejercicios utilizados en este post están basados en ejemplos del libro Cómo programar en Java de Deitel, y por lo tanto están bajo la licencia que esta editorial disponga.

3 Comentarios para “[código] GUIs en Java - Administración de Contenido (FlowLayout, BorderLayout y GridLayout)”

  1. a gravatar

    Axel dice:  


    wola…

    esta fantastico esto de java jaja muchas gracias me sirvio de muchisima ayuda…

    mi primer visita a este sitio y creo q esta muy ekipado jeje

    adios…

  2. a gravatar

    felix dice:  


    este codigo me fue muy util gracis…….

 

 

Antes de comentar... recuerda que no hago tareas

Te invito a subscribirte al feed RSS. ¿No sabes que es un lector de Feeds?

© 2007 - 2008 Dezinerfolio. Todos los derechos reservados.
Powered by Wordpress. Entradas RSS