POO2_U2_A3_NEEE

Embed Size (px)

Citation preview

  • 7/21/2019 POO2_U2_A3_NEEE

    1/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 SaavedraFernndez

    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

  • 7/21/2019 POO2_U2_A3_NEEE

    2/17

    Actividad 3. Mens y ventanas

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

    Instrucciones:

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

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

    3. Crea un proyecto en NetBeans, que contenga un programadonde apliques todos los contenedores y controles identificados enlos 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 Ypor la inicial del apellido paterno y la Z por la inicial del apellidomaterno.

    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 parmetrosde la actividad.

  • 7/21/2019 POO2_U2_A3_NEEE

    3/17

    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 entradapersonalizada que requiere que se seleccione que tipo de cuadros de dialogoque 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.

  • 7/21/2019 POO2_U2_A3_NEEE

    4/17

    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 ManejaEventosMenuDialogoimplementara 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 Ifque 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 entradapersonalizada.

    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 parael 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();.

  • 7/21/2019 POO2_U2_A3_NEEE

    5/17

    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 maines 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 mtodoprincipal(); 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 {

  • 7/21/2019 POO2_U2_A3_NEEE

    6/17

    //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();

    }

  • 7/21/2019 POO2_U2_A3_NEEE

    7/17

    class ManejaEventosMenuMensaje implements ActionListener{

    public void actionPerformed(ActionEvent e) {

    Object fuente=e.getSource();

    if (fuente==dcpCuidado) txtDcpMsn.setText("\n\nDescripcin\n\nMuestra un mensaje alusuario, 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 alusuario, 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");

  • 7/21/2019 POO2_U2_A3_NEEE

    8/17

    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();

  • 7/21/2019 POO2_U2_A3_NEEE

    9/17

    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

  • 7/21/2019 POO2_U2_A3_NEEE

    10/17

    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);

    }

    }

    }

  • 7/21/2019 POO2_U2_A3_NEEE

    11/17

    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);

  • 7/21/2019 POO2_U2_A3_NEEE

    12/17

    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

  • 7/21/2019 POO2_U2_A3_NEEE

    13/17

    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);

  • 7/21/2019 POO2_U2_A3_NEEE

    14/17

    INTERFAZ GRFICA

    vEmg.add(popup, BorderLayout.PAGE_START);

    }

    public static void main(String[] args) {

    VentanasMenu c=new VentanasMenu();

    c.Principal();

    }

    }

  • 7/21/2019 POO2_U2_A3_NEEE

    15/17

  • 7/21/2019 POO2_U2_A3_NEEE

    16/17

  • 7/21/2019 POO2_U2_A3_NEEE

    17/17