Você está na página 1de 17

E S A D

Universidad Abierta y a Distancia de Mxico.


Carrera: Ingeniera en Desarrollo de Software.
Septimo Cuatrimestre
Materia: Programacin Orientada a Objetos II.
2014
Actividad 3. Mens y
Ventanas
Nombre del Facilitador: Hugo Saavedra
Fernndez
Nombre del Alumno: Nelson Estrada Escobar
El propsito de esta actividad es Construir mens y ventanas
grficas, as como identificar su declaracin e implementar su
manipulacin.
ESAD
Actividad 3. Mens y ventanas

Ahora que aprendiste todas las caractersticas de funcionamiento para los
mens y ventanas, ests listo para realizar las siguientes instrucciones.

Instrucciones:


1. Identifica los diferentes tipos de mens y ventanas grficas
vistas en el desarrollo de la unidad.

2. Identifica su estructura algortmica (pasos) y sintctica (cdigo).

3. Crea un proyecto en NetBeans, que contenga un programa
donde apliques todos los contenedores y controles identificados en
los puntos 1 y 2.

4. Guarda la actividad con el nombre POO2_U2_A3_XXYZ.
Sustituye las XX por las dos primeras letras del primer nombre, la Y
por la inicial del apellido paterno y la Z por la inicial del apellido
materno.

5. Ingresa al apartado de tareas y sube tu archivo

6. Enva el archivo al facilitador(a) para recibir retroalimentacin.

7. Consulta la escala de evaluacin para conocer los parmetros
de la actividad.









Descripcin del cdigo del programa generado

MENUS Y VENTANAS
Representacin del cdigo
Bloque azul: Contiene la declaracin del paquete, el autor, la clase, definicin del autor
y las llaves correspondientes.
Bloque amarillo: Declaracin de todos los componentes grficos que se estarn
utilizando en el programa, estas declaraciones estn fuera de todos los mtodos, lo
que significa que estn declarados a nivel de clase, con la intencin de poder
manipular cada uno de los componentes grficos desde cualquier parte de la clase.
Bloque rojo: Mtodo principal en el cual como inicio se abre un cuadro de dialogo
opcional donde se le indica al usuario que seleccione si quiere visualizar Men Fijo o
Men Emergente.
Si se da clic en la opcin Men Fijo se abrir otro cuadro de dilogo de entrada
personalizada que requiere que se seleccione que tipo de cuadros de dialogo
que se quieren visualizar.

Al dar clic en Mensaje se ejecutara el mtodo Fijo.mensaje();
Al dar clic en Dialogo se ejecutara el mtodo Fijo.Dialogo();

Si se da clic en la opcin Men emergente se ejecutara el mtodo emergente();

Bloque Verde: Con esta clase se implementara el escuchador ActionListener, que ser
con el que se detectaran las acciones en el Men de cuadros de mensajes.
Segn la opcin seleccionada en el men, es la funcin If que se ejecutara.
dcpCuidado: Mostrara la descripcin del mensaje cuidado.
ejpCuidado: Ejecuta un cuadro de dialogo mensaje de cuidado.
dcpError: Mostrara la descripcin del mensaje error.
ejpError: Ejecuta un cuadro de dialogo mensaje de error.
dcpPlano: Mostrara la descripcin del mensaje plano.
ejpPlano: Ejecuta un cuadro de dialogo mensaje plano.


Bloque Verde Claro: Este mtodo es para la creacin de la ventana de cuadros de
dialogo de mensajes. Primero se crean las variables que funcionaran como elementos
del men y el objeto rea de texto donde ira la descripcin de cada cuadro de dialogo.
Despus se agregan los elementos del men a la ventana con su respectivo
escuchador.
Por ltimo se definen las caractersticas de la ventana y se ocupa un escuchador de
ventana para que al cerrar la ventana, esta se cierre y se vuelve a ejecutar el mtodo
Principal();.
Bloque Naranja: De manera muy similar a la clase ManejaEventosMenuMensaje, la
clase ManejaEventosMenuDialogo implementara el escuchador ActionListener, que
ser con el que se detectaran las acciones en el Men de cuadros de dialogo.
Segn la opcin seleccionada en el men, es la funcin If que se ejecutara.
dcpConf: Mostrara la descripcin del cuadro de dialogo de confirmacin.
ejpConf: Ejecuta un cuadro de dialogo de confirmacin.
dcpEntr: Mostrara la descripcin del cuadro de dialogo de entrada.
ejpEntr: Ejecuta un cuadro de dialogo de entrada.
dcpPers: Mostrara la descripcin del cuadro de dialogo de entrada
personalizada.
ejpPers: Ejecuta un cuadro de dialogo de entrada personalizada.
dcpOpc: Mostrara la descripcin del cuadro de dialogo opcional.
ejpOpc: Ejecuta un cuadro de dialogo opcional.

Cabe aclarar que para cada cuadro de dialogo se muestra el resultado obtenido en
cada caso mediante un cuadro de dialogo de mensaje plano
Bloque Naranja Claro: Al igual este mtodo es para la creacin de la ventana de
cuadros de dialogo de dialogo., prcticamente igual a la de mensajes. Primero se crean
las variables que funcionaran como elementos del men y el objeto rea de texto
donde ira la descripcin de cada cuadro de dialogo (solo cambiaran las variables para
el men).
Despus se agregan los elementos del men a la ventana con su respectivo
escuchador.
Por ltimo se definen las caractersticas de la ventana y se ocupa un escuchador de
ventana para que al cerrar la ventana, esta se cierre y se vuelve a ejecutar el mtodo
Principal();.


Bloque Morado: Servir para crear una ventana donde se realizara un men
emergente de manera representativa. Primero se crea la ventana y se especifican sus
caractersticas dentro de las cuales se agrega un escuchador de ventana para que al
dar clic en el icono de cerrar de la ventana, esta se cierre y se vuelva a ejecutar el
mtodo Principal();.
A continuacin se crea el men emergente y sus submens, los cuales despus se
agregan al men principal.
Por ltimo se agrega al men emergente a la ventana.
Bloque Rosa: Dentro del void main es donde se escriben las lneas que son las que
permiten el funcionamiento del programa, la primera crea un objeto de la clase
VentanasMenu, que es la clase que se describi antes, donde se crea toda la
apariencia y funcionalidad del programa. La segunda lnea invoca el mtodo
principal(); del objeto previamente creado, y realizando esta llamada se crea el
programa.
Cdigo
package pkg2u2_ventanasmenu;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.Color;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
* @author NELSON ESTRADA ESCOBAR
public class VentanasMenu {
//Se declaran de manera global todos los componentes a utilizar
MenuBar Mensaje, Dialogo;
Menu msnCuidado, msnError, msnPlano, dlgConf, dlgEntr, dlgPers, dlgOpc;
Frame vMsn, vDlg, vEmg;
MenuItem dcpCuidado,dcpError,dcpPlano,ejpCuidado,ejpError,ejpPlano,
dcpConf,dcpEntr,dcpPers,dcpOpc,ejpConf,ejpEntr,ejpPers,ejpOpc;
ManejaEventosMenuMensaje oyeMenuMensaje;
ManejaEventosMenuDialogo oyeMenuDialogo;
JTextArea txtDcpMsn = new javax.swing.JTextArea();
JTextArea txtDcpDlg = new javax.swing.JTextArea();
public void Principal(){
Object[] opciones = { "Men Fijo", "Men Emergente" };
int principal = JOptionPane.showOptionDialog(null, "Selecciona la opcin de Men que
deseas visualizar", "Men Principal", JOptionPane.DEFAULT_OPTION,
JOptionPane.PLAIN_MESSAGE,null, opciones, opciones[0]);
if (principal==0){
Object[] valores = { "Mensaje", "Dialogo" };
Object valorElegido = JOptionPane.showInputDialog(null,"Selecciona de que tipo",
"Cuadros de Dialogo", JOptionPane.INFORMATION_MESSAGE, null,valores, valores[0]);
if (valorElegido=="Mensaje"){
VentanasMenu Fijo=new VentanasMenu();
Fijo.mensaje();
}
if (valorElegido=="Dialogo"){
VentanasMenu Fijo=new VentanasMenu();
Fijo.dialogo();
}
}
if (principal==1) emergente();
}

class ManejaEventosMenuMensaje implements ActionListener{
public void actionPerformed(ActionEvent e) {
Object fuente=e.getSource();
if (fuente==dcpCuidado) txtDcpMsn.setText("\n\nDescripcin\n\nMuestra un mensaje al
usuario, con un cuadro de dialogo \nde tipo de mensaje con icono de cuidado/advertencia.");
if (fuente==ejpCuidado) JOptionPane.showMessageDialog(null, "Este es un ejemplo de
cuadro de dialogo de Cuidado.", "Mensaje de Cuidado", JOptionPane.WARNING_MESSAGE);
if (fuente==dcpError) txtDcpMsn.setText("\n\nDescripcin\n\nMuestra un mensaje al
usuario, con un cuadro de dialogo \nde tipo de mensaje con icono de error.");
if (fuente==ejpError) JOptionPane.showMessageDialog(null, "Este es un ejemplo de
cuadro de dialogo de Error.", "Mensaje de Error", JOptionPane.ERROR_MESSAGE);
if (fuente==dcpPlano) txtDcpMsn.setText("\n\nDescripcin\n\nMuestra un mensaje al
usuario, con un cuadro de dialogo \nde tipo de mensaje plano el cual no cuenta con icono solo
texto.");
if (fuente==ejpPlano) JOptionPane.showMessageDialog(null, "Este es un ejemplo de
cuadro de dialogo plano, el cual no contiene icono.", "Mensaje Plano",
JOptionPane.PLAIN_MESSAGE);
}
}

void mensaje(){ vMsn=new Frame();

//Creacin de variables para el men
Mensaje=new MenuBar();
msnCuidado = new Menu("Mensaje Cuidado");
msnError = new Menu("Mensaje Error");
msnPlano = new Menu("Mensaje Plano");
dcpCuidado =new MenuItem(" Descripcin");
ejpCuidado =new MenuItem(" Ejemplo");
dcpError =new MenuItem(" Descripcin");
ejpError =new MenuItem(" Ejemplo");
dcpPlano =new MenuItem(" Descripcin");
ejpPlano =new MenuItem(" Ejemplo");
txtDcpMsn =new JTextArea("\n\nArea para la descricpcin");

//Se agregan los elementos del men a la ventana
//v.setLayout(new FlowLayout() );
vMsn.setMenuBar(Mensaje);
Mensaje.add(msnCuidado);
msnCuidado.add(dcpCuidado); msnCuidado.add(ejpCuidado);
Mensaje.add(msnError);
msnError.add(dcpError); msnError.add(ejpError);
Mensaje.add(msnPlano);
msnPlano.add(dcpPlano); msnPlano.add(ejpPlano);
dcpCuidado.addActionListener(oyeMenuMensaje=new ManejaEventosMenuMensaje() );
ejpCuidado.addActionListener(oyeMenuMensaje);
dcpError.addActionListener(oyeMenuMensaje);
ejpError.addActionListener(oyeMenuMensaje);
dcpPlano.addActionListener(oyeMenuMensaje);
ejpPlano.addActionListener(oyeMenuMensaje);

//Caracteristicas de la ventana
//v.pack();
vMsn.setTitle("Cuadros de Dialogo");
vMsn.setLocation(200, 150);
vMsn.setVisible(true);
vMsn.setSize(420, 200);
vMsn.add(txtDcpMsn);
vMsn.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e){
vMsn.setVisible(false);
vMsn.dispose();
Principal();
}
});

}


class ManejaEventosMenuDialogo implements ActionListener{
public void actionPerformed(ActionEvent e) {
Object fuente=e.getSource();

if (fuente==dcpConf) txtDcpDlg.setText("\n\nDescripcin\n\nSe utiliza para confirmar
alguna accin.\nOfrece tres respuestas: Si, No y Cancelar; y para saber qu respuesta brindo
el usuario,\nretorna un nmero con la opcin elegida, siendo 0-Si, 1-No y 2-Cancelar.");
if (fuente==ejpConf){
String Opc ="";
int a=JOptionPane.showConfirmDialog(null,"Este es un ejemplo de cuadro de dialogo
de Confirmacin.");

if (a==0) Opc="Si";
if (a==1) Opc="No";
if (a==2) Opc="Cancelar";

JOptionPane.showMessageDialog(null, "Elegiste la opcin " +Opc+ ".", "Cuadro de
dialogo de Confirmacin", JOptionPane.PLAIN_MESSAGE);
}

if (fuente==dcpEntr) txtDcpDlg.setText("\n\nDescripcin\n\nSolicita el ingreso de algn
dato en particular. \nautomticamente este dialogo retorna en una cadena lo que el usuario
haya capturado,\n si se requiere otro tipo de dato tendr que realizarse el casting (conversin
de tipo de datos) necesario.");
if (fuente==ejpEntr){
String b=JOptionPane.showInputDialog("Este es un ejemplo de cuadro de dialogo de
Entrada.");
JOptionPane.showMessageDialog(null, "La informacin introducida es: " +b+ ".",
"Cuadro de dialogo de Entrada", JOptionPane.PLAIN_MESSAGE);
}

if (fuente==dcpPers) txtDcpDlg.setText("\n\nDescripcin\n\nSolicita el ingreso de algn
dato en particular, pero adems la entrada de esos datos puede personalizarse. \nPrimero se
cre un arreglo de objetos llamado valores, donde se ingresan los datos de la lista que se
quiere desplegar.\n La siguiente lnea recibir el objeto elegido del cuadro de dialogo, que tiene
como parmetros el ttulo del cuadro de dilogo,\n as como el mensaje que mostrar se indica
que es un mensaje de informacin y despus se pasa el arreglo de objetos, \nse indica tambin
el valor que mostrar por defecto (valores[0]).");
if (fuente==ejpPers){
Object[] valores = { "Uno", "Dos", "Tres" };
Object valorElegido = JOptionPane.showInputDialog(null,"Este es un ejemplo de cuadro
de dialogo de Entrada.", "Entrada", JOptionPane.INFORMATION_MESSAGE, null,valores,
valores[0]);
JOptionPane.showMessageDialog(null, "El valor seleccionado fue: " +valorElegido+ ".",
"Cuadro de dialogo de Entrada Personalizada", JOptionPane.PLAIN_MESSAGE);

}

if (fuente==dcpOpc) txtDcpDlg.setText("\n\nDescripcin\n\nPueden personalizarse los
botones que tendr, as como lo que estos dirn.\nLo primero es crear un arreglo de objetos
con los botones que contendr. Despus se pasa esto como parmetro.");
if (fuente==ejpOpc){
Object[] opciones = { "Si, Ya termine", "No, Falta revisarlo" };
int c = JOptionPane.showOptionDialog(null, "Quieres cerrar el programa.", "Cuadro de
dialogo Personalizado", JOptionPane.DEFAULT_OPTION,
JOptionPane.WARNING_MESSAGE,null, opciones, opciones[0]);
if (c==0) System.exit(0);
if (c==1) JOptionPane.showMessageDialog(null, "Puedes continuar.", "Cuadro de
dialogo Personalizado", JOptionPane.PLAIN_MESSAGE);
}
}
}


void dialogo(){ vDlg=new Frame();

//Creacin de variables para el men
Dialogo=new MenuBar();
dlgConf = new Menu("De Confirmacin");
dlgEntr = new Menu("De Entrada");
dlgPers = new Menu("Entrada Personalizada");
dlgOpc = new Menu("Dialogo Opcional");
dcpConf =new MenuItem(" Descripcin");
ejpConf =new MenuItem(" Ejemplo");
dcpEntr =new MenuItem(" Descripcin");
ejpEntr =new MenuItem(" Ejemplo");
dcpPers =new MenuItem(" Descripcin");
ejpPers =new MenuItem(" Ejemplo");
dcpOpc =new MenuItem(" Descripcin");
ejpOpc =new MenuItem(" Ejemplo");
txtDcpDlg =new JTextArea("\n\nArea para la descricpcin");

//Se agregan los elementos del men a la ventana
//v.setLayout(new FlowLayout() );
vDlg.setMenuBar(Dialogo);
Dialogo.add(dlgConf);
dlgConf.add(dcpConf); dlgConf.add(ejpConf);
Dialogo.add(dlgEntr);
dlgEntr.add(dcpEntr); dlgEntr.add(ejpEntr);
Dialogo.add(dlgPers);
dlgPers.add(dcpPers); dlgPers.add(ejpPers);
Dialogo.add(dlgOpc);
dlgOpc.add(dcpOpc); dlgOpc.add(ejpOpc);
dcpConf.addActionListener(oyeMenuDialogo=new ManejaEventosMenuDialogo() );
ejpConf.addActionListener(oyeMenuDialogo);
dcpEntr.addActionListener(oyeMenuDialogo);
ejpEntr.addActionListener(oyeMenuDialogo);
dcpPers.addActionListener(oyeMenuDialogo);
ejpPers.addActionListener(oyeMenuDialogo);
dcpOpc.addActionListener(oyeMenuDialogo);
ejpOpc.addActionListener(oyeMenuDialogo);

//Caracteristicas de la ventana
//v.pack();
vDlg.setTitle("Cuadros de Dialogo");
vDlg.setLocation(200, 150);
vDlg.setVisible(true);
vDlg.setSize(520, 400);
vDlg.add(txtDcpDlg);
vDlg.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e){
vDlg.setVisible(false);
vDlg.dispose();
Principal();
}
});
}


public void emergente(){
//se crea ventana con menu emergente

vEmg=new JFrame("Men Emergente");
vEmg.setLocation(200, 200);
vEmg.setVisible(true);
vEmg.setSize(300, 200);

vEmg.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e){
vEmg.setVisible(false);
vEmg.dispose();
Principal();

}
});

JPopupMenu popup = new JPopupMenu("Men");
JMenuItem menu1 = new JMenuItem("Mens");
JMenuItem menu2 = new JMenuItem("Men Fijo");
JMenuItem menu3 = new JMenuItem("Men Emergente");
JMenuItem menu4 = new JMenuItem("Cuadros de dialogo");
JMenuItem menu5 = new JMenuItem("Mensajes");
JMenuItem menu6 = new JMenuItem("Dialogo");

popup.add(menu1);
popup.add(menu2);
popup.add(menu3);
popup.add(menu4);
popup.add(menu5);
popup.add(menu6);

INTERFAZ GRFICA




vEmg.add(popup, BorderLayout.PAGE_START);

}

public static void main(String[] args) {

VentanasMenu c=new VentanasMenu();
c.Principal();

}
}

Você também pode gostar