[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
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
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
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









Axel dice:
Marzo 22nd, 2008 a las 8:09 pm
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…
felix dice:
Mayo 11th, 2008 a las 3:59 pm
este codigo me fue muy util gracis…….