POO2_U2_A3_NEEE
Short Description
Download POO2_U2_A3_NEEE...
Description
ESAD Actividad 3. Menús y Ventanas Nombre del Facilitador: Hugo Saavedra Fernández Nombre del Alumno: Nelson Estrada Escobar El propósito de esta actividad es Construir menús y ventanas gráficas, así como identificar su declaración e implementar su manipulación.
2014 Universidad Abierta y a Distancia de México. Carrera: Ingeniería en Desarrollo de Software. Septimo Cuatrimestre Materia: Programación Orientada a Objetos II.
ESAD
Actividad 3. Menús y ventanas Ahora que aprendiste todas las características de funcionamiento para los menús y ventanas, estás listo para realizar las siguientes instrucciones.
Instrucciones: 1. Identifica los diferentes tipos de menús y ventanas gráficas vistas en el desarrollo de la unidad. 2. Identifica su estructura algorítmica (pasos) y sintáctica (código). 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. Envía el archivo al facilitador(a) para recibir retroalimentación. 7. Consulta la escala de evaluación para conocer los parámetros de la actividad.
Descripción del código del programa generado MENUS Y VENTANAS Representación del código Bloque azul: Contiene la declaración del paquete, el autor, la clase, definición del autor y las llaves correspondientes. Bloque amarillo: Declaración de todos los componentes gráficos que se estarán utilizando en el programa, estas declaraciones están fuera de todos los métodos, lo que significa que están declarados a nivel de clase, con la intención de poder manipular cada uno de los componentes gráficos desde cualquier parte de la clase. Bloque rojo: Método 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 opción Menú Fijo se abrirá otro cuadro de diálogo 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 método Fijo.mensaje(); Al dar clic en Dialogo se ejecutara el método Fijo.Dialogo();
Si se da clic en la opción Menú emergente se ejecutara el método 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. Según la opción seleccionada en el menú, es la función If que se ejecutara.
dcpCuidado: Mostrara la descripción del mensaje cuidado. ejpCuidado: Ejecuta un cuadro de dialogo mensaje de cuidado. dcpError: Mostrara la descripción del mensaje error. ejpError: Ejecuta un cuadro de dialogo mensaje de error. dcpPlano: Mostrara la descripción del mensaje plano. ejpPlano: Ejecuta un cuadro de dialogo mensaje plano.
Bloque Verde Claro: Este método es para la creación 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 descripción de cada cuadro de dialogo. Después se agregan los elementos del menú a la ventana con su respectivo escuchador. Por último se definen las características 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 método 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. Según la opción seleccionada en el menú, es la función If que se ejecutara.
dcpConf: Mostrara la descripción del cuadro de dialogo de confirmación. ejpConf: Ejecuta un cuadro de dialogo de confirmación. dcpEntr: Mostrara la descripción del cuadro de dialogo de entrada. ejpEntr: Ejecuta un cuadro de dialogo de entrada. dcpPers: Mostrara la descripción del cuadro de dialogo de entrada personalizada. ejpPers: Ejecuta un cuadro de dialogo de entrada personalizada. dcpOpc: Mostrara la descripción 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 método es para la creación de la ventana de cuadros de dialogo de dialogo., prácticamente 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 descripción de cada cuadro de dialogo (solo cambiaran las variables para el menú). Después se agregan los elementos del menú a la ventana con su respectivo escuchador. Por último se definen las características 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 método 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 características 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 método Principal();. A continuación se crea el menú emergente y sus submenús, los cuales después 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 líneas 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 línea invoca el método principal(); del objeto previamente creado, y realizando esta llamada se crea el programa.
Código 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 opción 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\nDescripción\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\nDescripción\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\nDescripción\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();
//Creación 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(" Descripción"); ejpCuidado =new MenuItem(" Ejemplo"); dcpError =new MenuItem(" Descripción"); ejpError =new MenuItem(" Ejemplo"); dcpPlano =new MenuItem(" Descripción"); ejpPlano =new MenuItem(" Ejemplo");
txtDcpMsn =new JTextArea("\n\nArea para la descricpción");
//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\nDescripción\n\nSe utiliza para confirmar alguna acción.\nOfrece tres respuestas: Si, No y Cancelar; y para saber qué respuesta brindo el usuario,\nretorna un número con la opción 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 Confirmación.");
if (a==0) Opc="Si"; if (a==1) Opc="No"; if (a==2) Opc="Cancelar";
JOptionPane.showMessageDialog(null, "Elegiste la opción " +Opc+ ".", "Cuadro de dialogo de Confirmación", JOptionPane.PLAIN_MESSAGE); }
if (fuente==dcpEntr) txtDcpDlg.setText("\n\nDescripción\n\nSolicita el ingreso de algún dato en particular. \nautomáticamente 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 (conversión 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 información introducida es: " +b+ ".", "Cuadro de dialogo de Entrada", JOptionPane.PLAIN_MESSAGE); }
if (fuente==dcpPers) txtDcpDlg.setText("\n\nDescripción\n\nSolicita el ingreso de algún dato en particular, pero además 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 línea recibirá el objeto elegido del cuadro de dialogo, que tiene como parámetros el título del cuadro de diálogo,\n así como el mensaje que mostrará se indica que es un mensaje de información y después se pasa el arreglo de objetos, \nse indica también 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\nDescripción\n\nPueden personalizarse los botones que tendrá, así como lo que estos dirán.\nLo primero es crear un arreglo de objetos con los botones que contendrá. Después se pasa esto como parámetro."); 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();
//Creación de variables para el menú Dialogo=new MenuBar(); dlgConf = new Menu("De Confirmación"); dlgEntr = new Menu("De Entrada"); dlgPers = new Menu("Entrada Personalizada"); dlgOpc = new Menu("Dialogo Opcional"); dcpConf =new MenuItem(" Descripción"); ejpConf =new MenuItem(" Ejemplo"); dcpEntr =new MenuItem(" Descripción"); ejpEntr =new MenuItem(" Ejemplo"); dcpPers =new MenuItem(" Descripción"); ejpPers =new MenuItem(" Ejemplo"); dcpOpc =new MenuItem(" Descripción"); ejpOpc =new MenuItem(" Ejemplo"); txtDcpDlg =new JTextArea("\n\nArea para la descricpción");
//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("Menús"); 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);
vEmg.add(popup, BorderLayout.PAGE_START);
}
public static void main(String[] args) {
VentanasMenu c=new VentanasMenu(); c.Principal();
} }
INTERFAZ GRÁFICA
View more...
Comments