Vous êtes sur la page 1sur 10

Unidad Didctica 5.

Aplicaciones Basadas en la Interfaz Grfica

1. Introduccin
En Swing disponemos de cuatro clases importantes para la creacin de interfaces basadas en los
mens que son: JMenu, JMenuBar, JMenuItem y JPopupMenu. Un men en una aplicacin no es ms
que un JMenuBar en el que hay varios mens como veremos en esta unidad.
En esta imagen podemos apreciar las diferentes secciones a las que hacen referencia las clases

IN
ES

EM

relacionadas con mens de Java:

2. Creacin de un men

Las tres clases ms importantes para crear un men son las siguientes:
JMenuBar

Representa la barra en la que voy a guardar mis menus.


JMenu

Son las opciones del men que insertaremos sobre el JMenBar, normalmente llamamos men por
ejemplo el men "Archivo", "Insertar", "Formato", etc.
JMenuItem
Los elementos de un men se representan mediante la clase JMenuItem.
Ejemplo guardar, guardar como del Jmenu de Archivo.
INESEM

Unidad Didctica 5. Aplicaciones Basadas en la Interfaz Grfica

EM

Jerarqua de clases para realizar un men:

2.1. Ejemplo de creacin de un Men

En el siguiente ejemplo crearemos un Men con las opciones archivo y editar como se muestra en la

IN
ES

imagen.

import javax.swing.*;

public class EjSwing extends JFrame{


public EjSwing(){
//Creacin de un JMeunuBar, clase principal.
JMenuBar menuPrincipal = new JMenuBar();
JMenu menuArchivo = new JMenu("Archivo");

INESEM

Unidad Didctica 5. Aplicaciones Basadas en la Interfaz Grfica

JMenu menuEditar = new JMenu("Editar");


menuPrincipal.add(menuArchivo);
menuPrincipal.add(menuEditar);
//Construimos los JMenuItem del JMenu de Archivo
JMenuItem Guardar = new JMenuItem("Guardar");

EM

JMenuItem GuardarC = new JMenuItem("Guardar como");


JMenuItem Imprimir = new JMenuItem("Imprimir");
JMenuItem Cerrar = new JMenuItem("Cerrar");
menuArchivo.add(Guardar);

IN
ES

menuArchivo.add(GuardarC);
menuArchivo.add(Imprimir);

menuArchivo.add(new JSeparator());
menuArchivo.add(Cerrar);

//Agregamos el Men al JFrame.


setJMenuBar(menuPrincipal);
}

public static void main (String args[]){


new EjSwing().setVisible(true);}
}

3. Creacin de un Toolbar
Un objeto JToolBar crea una barra de herramientas para la insercin de componentes dentro de una

INESEM

Unidad Didctica 5. Aplicaciones Basadas en la Interfaz Grfica

fila o una columna. Normalmente las barras de herramientas proporcionan acceso a funcionalidades
que tambin se encuentran en tems de mens.

EM

En esta figura se aprecia un toolbar creado en una aplicacin distribuida

3.1. Ejemplo de creacin de un Toolbar

En el siguiente ejemplo crearemos una barra de herramientas con tres botones dentro de la barra

IN
ES

como se muestra en la imagen.

import javax.swing.*;

public class EjSwing extends JFrame{

static JFrame formulario = new JFrame();

//Creamos un toolbar con nombre y orientacion horizontal.


static JToolBar jtb1 = new JToolBar("Barra de Herramientas",0 );
static JButton bot1 = new JButton("Abrir");
static JButton bot2 = new JButton("Guardar");
static JButton bot3 = new JButton("Imprimir");
// parte principal de programa
public static void main(String[] args)
{
INESEM

Unidad Didctica 5. Aplicaciones Basadas en la Interfaz Grfica

formulario.setTitle("Ejemplo Toolbar");
formulario.setDefaultCloseOperation(formulario.EXIT_ON_CLOSE);
//Insertamos los componentes en el Toolbar.
jtb1.add(bot1);
jtb1.add(bot2);

// Insertamos el Toolbar en el formulario


formulario.getContentPane().add(jtb1);
formulario.pack();

}
}

IN
ES

formulario.setVisible(true);

EM

jtb1.add(bot3);

Tambin podemos insertar iconos en la barra de herramientas:


ImageIcon ImagenGuardar=new ImageIcon("guardar.gif");
bot1.setIcon(ImagenGuardar);

Sus propiedades ms comunes son:


Autoscrolls(), Background(), Border(), Bounds(), Cursor(), Enabled(), Font(),
Foreground(),Floatable(), Insets(), Layout(), Margin(), Name(), Opaque(), Orientation(),
ToolTipText(), Visible(), VisibleRect().
Sus eventos ms comunes son:
WINDOW:

INESEM

Unidad Didctica 5. Aplicaciones Basadas en la Interfaz Grfica

WindowActivated(), WindowClosed(), WindowClosing(), WindowDeactivated(), WindowOpened().


MOUSE:
MouseClicked(), MouseDragged(),MouseEntered(), MouseExited(),MouseMoved(), MousePressed(),
MouseReleased().
KEY:

4. JPopupMenu

EM

KeyPressed(), KeyReleased(), KeyTyped().

Un JPopupMenu es conocido con el nombre de menu contextual, este es el menu que sale

IN
ES

normalmente al dar clic derecho en el escritorio o en casi cualquier programa.

4.1. Creacin de un JPopupMenu


// Demostracin de los objetos JPopupMenu
import java.awt.*;

import java.awt.event.*;
import javax.swing.*;
public class PruebaContextual extends JFrame {
private JRadioButtonMenuItem elementos[];
private final Color valoresColor[] =
{ Color.BLUE, Color.YELLOW, Color.RED };
INESEM

Unidad Didctica 5. Aplicaciones Basadas en la Interfaz Grfica

private JPopupMenu menuContextual;


// configurar GUI
public PruebaContextual()
{
super( "Uso de objetos JPopupMenu" );

EM

ManejadorEventos manejador = new ManejadorEventos();


String colores[] = { "Azul", "Amarillo", "Rojo" };
// establecer men contextual y sus elementos

ButtonGroup grupoColores = new ButtonGroup();

IN
ES

menuContextual = new JPopupMenu();

elementos = new JRadioButtonMenuItem[ 3 ];

// construir cada elemento de men y agregarlo al men contextual; adems


// permitir el manejo de eventos para cada elemento de men
for ( int cuenta = 0; cuenta < elementos.length; cuenta++ ) {
elementos[ cuenta ] = new JRadioButtonMenuItem( colores[ cuenta ] );
menuContextual.add( elementos[ cuenta ] );
grupoColores.add( elementos[ cuenta ] );
elementos[ cuenta ].addActionListener( manejador );
}
getContentPane().setBackground( Color.WHITE );
// declarar un objeto MouseListener para la ventana que muestra

INESEM

Unidad Didctica 5. Aplicaciones Basadas en la Interfaz Grfica

// un objeto JPopupMenu cuando ocurre el evento de desencadenamiento del men contextual


getContentPane().addMouseListener(
new MouseAdapter() { // clase interna annima
// manejar evento de oprimir botn del ratn
public void mousePressed( MouseEvent evento )

checkForTriggerEvent( evento );
}

EM

// manejar evento de soltar el botn del ratn

IN
ES

public void mouseReleased( MouseEvent evento )

checkForTriggerEvent( evento );
}

// determinar si evento debe desencadenar el men contextual


private void checkForTriggerEvent( MouseEvent evento )
{

if ( evento.isPopupTrigger() )
menuContextual.show(
evento.getComponent(), evento.getX(), evento.getY() );
}
} // fin de la clase interna annima

INESEM

Unidad Didctica 5. Aplicaciones Basadas en la Interfaz Grfica

); // fin de la llamada a addMouseListener


setSize( 300, 200 );
setVisible( true );
} // fin del constructor de PruebaContextual
public static void main( String args[] )

EM

{
JFrame.setDefaultLookAndFeelDecorated(true);

PruebaContextual aplicacion = new PruebaContextual();

aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

IN
ES

// clase interna privada para manejar eventos de elemento de men


private class ManejadorEventos implements ActionListener {
// procesar selecciones de elementos de men

public void actionPerformed( ActionEvent evento )


{

// determinar cul elemento de men fue seleccionado


for ( int i = 0; i < elementos.length; i++ )
if ( evento.getSource() == elementos[ i ] ) {
getContentPane().setBackground( valoresColor[ i ] );
return;
}

INESEM

Unidad Didctica 5. Aplicaciones Basadas en la Interfaz Grfica

}
} // fin de la clase interna privada ManejadorEventos
} // fin de la clase PruebaContextual

Recuerda

IN
ES

Swing disponemos de cuatro clases importantes para la creacin de interfaces basadas en la creacin
de mens:
JMenu
JMenuBar
JMenuItem
JPopupMenu
Las tres clases ms importantes para crear un men son las siguientes:
JMenuBar.
JMenu.
JMenuItem. Un objeto JToolBar crea una barra de herramientas para la insercin de componentes
dentro de una fila o una columna. Normalmente las barras de herramientas proporcionan acceso a
funcionalidades que tambin se encuentran en tems de mens.
Un JPopupMenu es conocido con el nombre de menu contextual, este es el menu que sale
normalmente al dar clic derecho en el escritorio o en casi cualquier programa.

EM

INESEM

Vous aimerez peut-être aussi