TEMA 7: Entradas y salidas por ventanas emergentes.
1. Entrada y salida por ventanas emergentes.
Algo muy común a la hora de programar, es como avisar al usuario de ciertas actividades, o como hacerlo escoger para recapacitar o darle la oportunidad de elegir que es lo que se desea hacer, para esto, en Java tenemos elementos muy sencillos pero funcionales, que nos permiten mostrar mensajes de dialogo, o cuadros de dialogo, como los prefieran llamar, estos elementos son sumamente sencillos de utilizar con un poco de lectura al API de Java, sin embargo, como siempre, surgen las dudas, y para aclararlas dedicaré este post para mostrarles los diferentes tipos de diálogos que podemos utilizar en Swing, bien, para esto he preparado lo siguiente (Utilizando Netbeans como IDE):
- Un proyecto con un nombre cualquiera (En este caso SerProgramador.es).
- Un paquete donde iremos trabajando durante este post.
- showMessageDialog
- showInputDialog
- showConfirmDialog
- showOptionDialog
showMessageDialog
Ok, para probar esté método, lo único que haremos será crear una clase con un método main, vamos a suponer que la clase se llama, MessageDialog:
1
2
3
4
5
6
|
public class MessageDialog {
public static void main(String[] args) {
}
}
|
1
|
import javax.swing.JOptionPane;
|
1
2
3
4
5
6
7
|
public class MessageDialog {
public static void main(String[] args) {
JOptionPane.showMessageDialog(null, "Operación realizada correctamente");
}
}
|
1
|
JOptionPane.showMessageDialog(null, "Mensaje dentro de la ventana", "Mensaje en la barra de titulo", JOptionPane.WARNING_MESSAGE);
|
- Primer Parámetro: El componente padre sobre el cual se mostrará la ventana de dialogo.
- Segundo Parámetro: El mensaje que se mostrará dentro de la ventana.
- Tercer Parámetro: El mensaje que se mostrará en la barra de titulo.
- Cuarto Parámetro: Una variable Int contenida por JOptionPane, que representa el icono que se mostrará en la ventana, algunos de los valores posibles son: INFORMATION_MESSAGE , WARNING_MESSAGE , QUESTION_MESSAGE , PLAIN_MESSAGE, ERROR_MESSAGE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.Icon;
import javax.swing.ImageIcon;
public class MyIcon implements Icon{
@Override
public void paintIcon(Component c, Graphics g, int x, int y) {
Image image = new ImageIcon(getClass().getResource("/resources/icon-pencil-png.png")).getImage();
g.drawImage(image, x, y, c);
}
@Override
public int getIconWidth() {
return 50;
}
@Override
public int getIconHeight() {
return 50;
}
}
|
1
2
|
MyIcon icon = new MyIcon();
JOptionPane.showMessageDialog(null, "Mensaje dentro de la ventana", "Titulo", JOptionPane.DEFAULT_OPTION, icon);
|
showInputDialog
Bien, para trabajar con el showInputDialog, vamos a crear nuevamente una clase a la cual le llame InputDialog nuevamente con un método main:
1
2
3
4
5
|
public class InputDialog {
public static void main(String[] args) {
}
}
|
- Método 1:
1
|
JOptionPane.showInputDialog(Mensaje);
|
1
|
String respuesta = JOptionPane.showInputDialog("Escribe tu nombre");
|
- Método 2:
1
|
JOptionPane.showInputDialog(Mensaje, Texto Inicial);
|
1
|
String respuesta = JOptionPane.showInputDialog("¿Cual es su nombre?", "atxy2k");
|
- Método 3:
1
|
JOptionPane.showInputDialog(Componente padre, Mensaje);
|
1
|
String respuesta = JOptionPane.showInputDialog(null, "Escribe tu nombre");
|
- Método 4:
1
|
JOptionPane.showInputDialog(Componente padre, Mensaje, Texto Inicial);
|
1
|
JOptionPane.showinputDialog(null, "¿Cual es su nombre?", "atxy2k");
|
- Método 5:
1
|
JOptionPane.showInputDialog(Componente padre, Mensaje, Titulo, Tipo De Mensaje (WARNING,ERROR,ETC.) );
|
1
|
String respuesta = JOptionPane.showInputDialog(null, "Escriba nuevamente su nombre", "Error!", JOptionPane.ERROR_MESSAGE);
|
- Método 6:
1
|
JOptionPane.showInputDialog(Componente padre, Mensaje, Titulo, Tipo De Mensaje, Icono, Arreglo de opciones, Seleccion por defecto );
|
1
2
3
4
5
6
7
8
9
|
String[] carreras = {
"Ingeniería en sistemas computacionales",
"Ingeniería industrial",
"Ingeniería en mecatrónica",
"Ingeniería en informatica",
"Ingeniería petroquímica"
};
MyIcon icon = new MyIcon();
String resp = (String) JOptionPane.showInputDialog(null, "Seleccione una carrera a cursar", "Carrera", JOptionPane.DEFAULT_OPTION, icon, carreras, carreras[0]);
|
showConfirmDialog
Una vez que hemos dominado los métodos anteriores, utilizar un showConfirmDialog es super sencillo, este, cuenta con cuatro sobrecargas del método, y los veremos de manera super rápida, para esto hagamos una clase con cualquier nombre (en mi caso showConfirmDialog) y pongamosle un método main para comenzar a trabajar, y veamos como funcionan estos métodos:- Método 1:
1
|
JOptionPane.showConfirmDialog(Componente padre, "Mensaje");
|
1
|
int resp = JOptionPane.showConfirmDialog(null, "¿Está seguro?");
|
- Método 2:
1
|
JOptionPane.showConfirmDialog(Componente padre, "Mensaje", "Titulo","Tipo de seleccion");
|
1
|
int resp = JOptionPane.showConfirmDialog(null, "¿Esta seguro?", "Alerta!", JOptionPane.YES_NO_OPTION);
|
- Método 3:
1
|
JOptionPane.showConfirmDialog(Componente padre, "Mensaje", "titulo", "tipo de seleccion", "tipo de mensaje");
|
1
|
int resp = JOptionPane.showConfirmDialog(null, "¿Esta seguro?", "Alerta!", JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE);
|
- Método 4:
1
|
JOptionPane.showConfirmDialog(Componente padre, "Mensaje", "titulo", "tipo de seleccion", "tipo de mensaje");
|
1
2
|
MyIcon icon = new MyIcon();
int resp = JOptionPane.showConfirmDialog(null, "¿Esta seguro?", "Alerta!", JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, icon);
|
showOptionDialog
El método anterior, nos enseño una manera de darle a escoger al usuario mas de una opción en una ventana de dialogo, como una manera más personalizada de hacer esto, podemos utilizar el método showOptionDialog que nos proporciona JOptionPane, este método no tiene sobrecarga y cuenta con los siguientes parámetros.
1
|
JOptionPane.showOptionDialog(padre, mensaje, titulo, tipo de seleccion, tipo de mensaje, icono, opciones, valor inicial);
|
1
2
3
|
MyIcon icon = new MyIcon();
String[] options = {"Opcion A", "Opcion B", "Opcion C", "Opcion D"};
int seleccion = JOptionPane.showOptionDialog(null, "Es necesario que seleccione una opcion", "Titulo", JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE, icon, options, options[0]);
|
Comentarios
Publicar un comentario