Documentos de Académico
Documentos de Profesional
Documentos de Cultura
- Cajas de Dilogo
Objetivo
Desarrollar un programa que utilize cajas de dilogo predefinidas, personalizadas
y del tipo estndar, navegando entre diferentes formularios.
Objetivos especficos:
Usar MessageBox, InputBox, ConfirmBox, OptionBox de Java.
Usar JDialog para crear nuevos formularios y navegar entre ellos.
Usar JFileChooser y JColorChooser.
Introduccin
En muchas aplicaciones se hace necesario el visualizar nuevos datos, nueva
informacin o bien, realizar una tarea previa para poder continuar con la ejecucin
de la misma. Es as que no le resulta extrao al usuario el que se muestren y se
cierren ventanas durante la ejecucin, ya sea para pedir datos, que se realice
alguna confirmacin o accin, o por cualquier otra cosa que la aplicacin en su
ejecucin necesite.
En esta prctica se ver la manera de generar nuevas ventanas, adicionales al
formulario principal, diseadas para realizar la tarea que se requiera.
Francisco Javier Ceballos reporta tres formas de aadir nuevas ventanas a una
aplicacin:
Cajas de dilogo predefinidas. Son cajas de dilogo ya diseadas y que al
momento de requerirse se crean instancias de ellas por medio de la clase
JOptionPane de la biblioteca JFC (Java Foundation Class). Un ejemplo es
showMessageDialog.
Cajas de dilogo personalizadas. Son cajas de dilogo hechas a la medida,
para lo cual se cuenta con la clase JDialog.
Cajas de dilogo estndar. Son cajas de dilogo muy comunes. La clase
JFileChooser permite crear las ventanas para Abrir o Guardar archivos y la
clase JColorChooser muestra la paleta de colores para hacer algn cambio
de color en nuestra aplicacin.
Muchas de las ventanas que se muestran cuentan con varios botones que se
pueden pulsar y que al momento de regresar a la ventana inicial, debemos saber
cul de esos botones fue pulsado para realizar la tarea correspondiente.
Considere el caso de una ventana que ofrezca los botones OK, Retry, Cancel,
deberemos entonces poder actuar conforme lo determine el usuario del programa.
De igual manera en muchas ventanas adicionales se capturan datos que debemos
Prctica 3 - 1
poder recuperar y usar en la ventana original una vez que la ventana auxiliar haya
sido cerrada.
En esta prctica se usarn los tres tipos de cajas de dilogo y se identificarn los
datos capturados as como los botones pulsados.
Correlacin con los temas y subtemas del programa de estudio vigente
Esta prctica est directamente relacionada con las unidades II y III ya que se
hace uso nuevamente de la interfaz grfica es decir el entorno de desarrollo, al
hacer uso de las facilidades que brinda al programador. Se profundiza en conocer
nuevos elementos como el JDialog que permite crear nuevas ventanas
dependientes del mismo Frame, as como tambin el uso de componentes
visuales y no visuales. Esto ltimo pertenece a la unidad tres del temario.
Material y equipo necesario
Computadora o laptop
NetBeans versin 7.2 o superior.
Metodologa
Las cajas de dilogo se clasifican en tres categoras: Cajas de Dilogo
Predefinidas, Cajas de Dilogo Personalizadas y Cajas de Dilogo Estndar.
Presentaremos los tres tipos de cajas en una sola aplicacin pero en tres partes.
Parte Uno: Uso de Cajas de Dilogo Predefinidas
Paso 1. Crear un nuevo proyecto de nombre Practica3_CajasDialogo. Desmarcar
la casilla para que no genere clase main (Create Main Class).
Paso 2. Aadir un JFrame Form al proyecto. Disee el formulario tal como se
muestra en la siguiente imagen:
Prctica 3 - 2
Prctica 3 - 3
categora y se despliegan todos los eventos que pueden ser controlados para este
componente. Se busca en la lista el evento de actionPerformed.
Independientemente de cual fue el camino seguido para activar el evento
actionPerformed, el cdigo para ese botn es el siguiente:
private
void
jbtMessageActionPerformed(java.awt.event.ActionEvent
evt)
{
JOptionPane.showMessageDialog(this,
"Esto
es
un
MessageDialog",
"Probando
Cajas",
JOptionPane.OK_CANCEL_OPTION);
}
Object mensaje,
String ttulo,
int tipoMensaje,
Prctica 3 - 4
Icon icono)
Throws HeadlessException
Los dos primeros argumentos son indispensables, los dems son opcionales.
Observe como usamos solamente cuatro de los cinco argumentos posibles ya que
el ltimo no lo especificamos. Pruebe a usar una expresin semejante a la
siguiente:
JOptionPane.showMessageDialog(this,
"Esto
es
un
MessageDialog",
"Probando
Cajas",
JOptionPane.OK_CANCEL_OPTION,
new
ImageIcon("C:\\Archivos
de
programa\\"
+
"Microsoft
Office\\CLIPART\\PUB60COR\\AG00175_.gif"));
Usted puede sustituir la ruta que aparece en el new ImageIcon ya que esa
funciona para la computadora en la que se est escribiendo.
Paso 4. Procederemos a mostrar el cdigo para el botn jbtConfirm, el cual
desplegar un ConfirmDialog.
private
void
jbtConfirmActionPerformed(java.awt.event.ActionEvent
evt)
{
int
resp
=JOptionPane.showConfirmDialog(null,
"Desea
Continuar");
jlbBoton.setText("Boton
pulsado:
"
+
resp);
}
Prctica 3 - 5
Object mensaje,
String ttulo,
int botones,
int tipoMensaje,
Icon icono)
Throws HeadlessException
Prctica 3 - 6
Prctica 3 - 7
Object mensaje,
String ttulo,
int tipoMensaje,
Icon
icono,
Object[]
valores,
Object
valorInicial)
throws HeadlessException
Prctica 3 - 8
Object mensaje,
String ttulo,
Prctica 3 - 9
int tipoMensaje,
Icon
icono,
Object[]
ttulosBotones,
Object
botnPorOmisin)
throws HeadlessException
Prctica 3 - 10
Son dos JLabel, un JTextField y tres JButton. Les daremos los nombres
siguientes:
jButton1 jbtNuevoArchivo
jButton2 jbtNuevoColor
jButton3 jbtRegresar
jLabel1. jlbTitulo
Dr.
Hernn
de
la
Garza
Prctica 3 - 11
jLabel2. jlbArchivo
jTextField1 jtfArchivo
Paso 9. Para hacer que esta ventana se muestre se requiere aadir en el cdigo
de la ventana principal una lnea de declaracin como la siguiente:
private
VentanaDos
nuevaVentana;
Prctica 3 - 12
Prctica 3 - 13
por la siguiente:
jtfArchivo.setText(dlgAbrir.getSelectedFile().getPath());
luego cambie
por
Prctica 3 - 14
Prctica 3 - 15
Paso 13. Por ltimo nos falta programar el botn jbtRegresar, para volver a la
ventana principal.
private
void
jbtRegresarActionPerformed(java.awt.event.ActionEvent
evt)
{
setVisible(false);
dispose();
//
TODO
add
your
handling
code
here:
}
Prctica 3 - 16
/**
Creates
new
form
Ventana
*/
public
Ventana()
{
initComponents();
}
private
void
jbtMessageActionPerformed(java.awt.event.ActionEvent
evt)
{
JOptionPane.showMessageDialog(this,
"Esto
es
un
MessageDialog",
"Probando
Cajas",
JOptionPane.OK_CANCEL_OPTION);
//
TODO
add
your
handling
code
here:
}
private
void
jbtConfirmActionPerformed(java.awt.event.ActionEvent
evt)
{
int
resp
=JOptionPane.showConfirmDialog(null,
"Desea
Continuar");
jlbBoton.setText("Boton
pulsado:
"
+
resp);
//
TODO
add
your
handling
code
here:
}
private
void
jbtInputUnoActionPerformed(java.awt.event.ActionEvent
evt)
{
String
clave
=
JOptionPane.showInputDialog("Palabra
de
Paso");
jlbDatoUno.setText("Dato
tecleado
o
seleccionado:
"
+
clave);
//
TODO
add
your
handling
code
here:
}
private
void
jbtInputDosActionPerformed(java.awt.event.ActionEvent
evt)
{
Object[]
valoresSeleccionables
=
{"uno","dos","tres","cuatro","cinco"};
String
clave
=
(String)JOptionPane.showInputDialog(null,
"Seleccione
una
Opcion",
"Lista
de
Valores",
JOptionPane.PLAIN_MESSAGE,
new
ImageIcon("C:\\Archivos
de
programa\\"
+
"Microsoft
Office\\CLIPART\\PUB60COR\\AG00175_.gif"),
valoresSeleccionables,valoresSeleccionables[1]);
Prctica 3 - 17
if
(clave
!=null){
jlbDatoDos.setText("Dato
tecleado
o
seleccionado:
"+
clave);
}else{
jbtMessage.doClick();
}
//
TODO
add
your
handling
code
here:
}
private
void
jbtOptionActionPerformed(java.awt.event.ActionEvent
evt)
{
//
Escribe
aqu
tu
cdigo
para
hacer
que
se
muestre
esta
caja
}
private
void
jbtAvanzarActionPerformed(java.awt.event.ActionEvent
evt)
{
nuevaVentana
=
new
VentanaDos(this,true);
nuevaVentana.setVisible(true);
//
TODO
add
your
handling
code
here:
}
public
static
void
main(String
args[])
{
java.awt.EventQueue.invokeLater(new
Runnable()
{
public
void
run()
{
new
Ventana().setVisible(true);
}
});
}
//
Variables
declaration
-
do
not
modify
private
javax.swing.JButton
jbtMessage;
private
javax.swing.JButton
jbtConfirm;
private
javax.swing.JButton
jbtInputUno;
private
javax.swing.JButton
jbtInputDos;
private
javax.swing.JButton
jbtOption;
Prctica 3 - 18
Prctica 3 - 19
Prctica 3 - 20
Sugerencias Didcticas
Para abordar el tema de las cajas de dilogo en todos sus tipos se requiere
primero que el alumno identifique los diferentes tipos y de entre ellos, a cada una
de las posibles cajas a trabajar. Para ello es conveniente presentarle ejemplos
variados de su uso.
Pedir a los alumnos que experimenten cambiando los parmetros de las cajas de
dilogo predefinidas, desde su versin simplificada hasta la que requiera ms
parmetros.
Reporte del alumno (resultados)
El alumno deber mostrar evidencias de haber realizado la prctica.
Mostrar los resultados de las diferentes actividades adicionales que se solicitaron
durante el desarrollo de la prctica.
Incluir el rubro de conclusiones y recomendaciones en el reporte.
Bibliografa preliminar
1. Java The Complete Reference Eighth Edition
Herbert Schildt
Oracle Press 2011
2. Java 2 Interfaces Grficas y Aplicaciones para Internet
Francisco Javier Ceballos
Alfaomega- RAMA 2. Edicin 2007
3. En la pgina oficial de Java:
docs.oracle.com/javase/tutorial/java/
Prctica 3 - 21