AccionConfirmacion.java |
//
// AccionConfirmacion.java
// DemoDialogos
//
import java.awt.event.*;
import javax.swing.*;
public class AccionConfirmacion implements ActionListener {
JLabel jl;
String[] respuestas = {"YES_OPTION", "NO_OPTION",
"CANCEL_OPTION", "OK_OPTION", "CLOSED_OPTION"};
AccionConfirmacion(JLabel jl) {
this.jl = jl;
}
public void actionPerformed(ActionEvent e) {
int opcion = Integer.parseInt(e.getActionCommand());
int resultado = 0;
switch(opcion) {
case 0: resultado = JOptionPane.showConfirmDialog( jl,
"Diga que si",
"Muestra opción predeterminada",
JOptionPane.DEFAULT_OPTION);
break;
case 1: resultado = JOptionPane.showConfirmDialog( null,
"Diga si o no",
"Muestra opción Si/No",
JOptionPane.YES_NO_OPTION);
break;
case 2: resultado = JOptionPane.showConfirmDialog( null,
"Diga si, no o cancelar",
"Muestra opción Si/No/Cancelar",
JOptionPane.YES_NO_CANCEL_OPTION);
break;
case 3: resultado = JOptionPane.showConfirmDialog( null,
"Confirme, por favor",
"Solicitud de confirmación",
JOptionPane.OK_CANCEL_OPTION);
break;
}// switch
jl.setText("Se ha pulsado la opción "
+ respuestas[resultado]);
}
}
|
AccionEntrada.java |
//
// AccionEntrada.java
// DemoDialogos
//
import java.awt.event.*;
import javax.swing.*;
public class AccionEntrada implements ActionListener {
JLabel jl;
AccionEntrada(JLabel jl) {
this.jl = jl;
}
public void actionPerformed(ActionEvent e) {
int opcion = Integer.parseInt(e.getActionCommand());
String resultado = null;
switch(opcion) {
case 0: resultado
= JOptionPane.showInputDialog("Escriba una cadena:");
break;
case 1: String[] pos = {"Alfa", "Beta", "Delta", "Gamma"};
resultado = (String)JOptionPane.showInputDialog( null,
"Seleccione una:",
"Lista de posibles elecciones",
JOptionPane.INFORMATION_MESSAGE,
null,
pos,
pos[0]);
break;
}// switch
jl.setText("El resultado es "
+ (resultado==null?"Cancelado":resultado));
}
}
|
AccionMensajes.java |
//
// AccionMensajes.java
// DemoDialogos
//
import java.awt.event.*;
import javax.swing.*;
public class AccionMensajes implements ActionListener {
JLabel jl;
AccionMensajes(JLabel jl) {
this.jl = jl;
}
public void actionPerformed(ActionEvent e) {
int opcion = Integer.parseInt(e.getActionCommand());
int resultado;
switch(opcion) {
case 0: JOptionPane.showMessageDialog( jl,
"Este es el mensaje",
"Este es el título",
JOptionPane.ERROR_MESSAGE);
break;
case 1: JOptionPane.showMessageDialog( null,
"Información",
"Mensaje de información",
JOptionPane.INFORMATION_MESSAGE);
break;
case 2: JOptionPane.showMessageDialog( null,
"Advertencia",
"Mensaje de advertencia",
JOptionPane.WARNING_MESSAGE);
break;
case 3: JOptionPane.showMessageDialog( null,
"Pregunta",
"Mensaje de interrogación",
JOptionPane.QUESTION_MESSAGE);
break;
case 4: JOptionPane.showMessageDialog( null,
"Le comunicamos que...",
"Mensaje normal",
JOptionPane.PLAIN_MESSAGE);
break;
}
}
}
|
AccionOpciones.java |
//
// AccionOpciones.java
// DemoDialogos
//
import java.awt.event.*;
import javax.swing.*;
public class AccionOpciones implements ActionListener {
JLabel jl;
String[] respuestas = {"YES_OPTION", "NO_OPTION",
"CANCEL_OPTION", "OK_OPTION", "CLOSED_OPTION"};
AccionOpciones(JLabel jl) {
this.jl = jl;
}
public void actionPerformed(ActionEvent e) {
int caso = Integer.parseInt(e.getActionCommand());
Object[] opciones = {"Soltero", "Casado",
"No sabe/No contesta"};
int resultado = 0;
switch(caso) {
case 0:
Object[] op0 = {"Aceptado"};
resultado = JOptionPane.showOptionDialog( null,
"La bolsa ha subido",
"Indicación informativa",
JOptionPane.DEFAULT_OPTION,
JOptionPane.INFORMATION_MESSAGE,
null,
op0,
op0[0]);
break;
case 1:
Object[] op1 = {"Aceptar", "Rechazar"};
resultado = JOptionPane.showOptionDialog( null,
"Por favor, indique si es aplicable:",
"Exención de IVA",
JOptionPane.YES_NO_OPTION,
JOptionPane.INFORMATION_MESSAGE,
null,
op1,
op1[0]);
break;
case 2:
Object[] op2 = {"Abrir cuenta", "Cerrar cuenta",
"Cancelar"};
resultado = JOptionPane.showOptionDialog( null,
"Indique lo que desea hacer con esta cuenta:",
"Estado de cuenta",
JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE,
null,
op2,
op2[0]);
break;
case 3:
Object[] op3 = {"Imprimir", "Cancelar"};
resultado = JOptionPane.showOptionDialog( null,
"¿Desea imprimir este documento?",
"Impresión",
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE,
null,
op3,
op3[0]);
break;
}// switch
jl.setText("Se ha pulsado la opción "
+ respuestas[resultado]);
}
}
|
DemoDialogos.java |
//
// DemoDialogos.java
//
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DemoDialogos extends JFrame5{
JLabel jl;
public DemoDialogos() {
super("DEMOSTRACIîN DE DIÁLOGOS ESTÁNDAR");
ActionListener aMensajes, aConfirmacion,
aEntrada, aOpciones,aValor;
jl = new JLabel("No se ha seleccionado ninguna opción");
jl.setPreferredSize(new Dimension(300,200));
jl.setHorizontalAlignment(SwingConstants.CENTER);
jmb = new JMenuBar();
//Preparamos el menú Archivo para salir
salir = new JMenuItem("Salir");
salir.addActionListener(new Finis());
archivo = new JMenu("Archivo");
archivo.add(salir);
// Lo aˆadimos a la barra de menús
jmb.add(archivo);
// Preparamos el menú Mensajes
// En este tipo de cuadros de diálogo sólo
//se puede variar el mensaje mostrado,
// el t‚tulo y el icono.
//
String[] nMensajes = {"Error...", "Información...",
"Advertencia...", "Pregunta...", "Normal..."};
aMensajes = new AccionMensajes(jl);
JMenu mensajes = prepararMenu("Mensajes", nMensajes,
aMensajes);
jmb.add(mensajes);
//
// Preparamos el menú Confirmación
// Solo se pueden hacer variar el mensajes, el t‚tulo
// y el grupo de opciones.
// Las opciones son por defecto, si/no,si/no/cancelar
// y ok/cancelar
// Se devuelven constantes que denotan si, no, cancelar,
// ok o cerrado
//
String[] nConfirmacion = {"Opcion POR DEFECTO...",
"Opcion SI/NO...",
"Opcion SI/NO/CANCELAR...", "Opción OK/CANCELAR" };
aConfirmacion = new AccionConfirmacion(jl);
JMenu confirmacion = prepararMenu("Confirmacion",
nConfirmacion,
aConfirmacion);
jmb.add(confirmacion);
//
// Preparamos el menú Entrada
//
String[] nEntrada = {"Pedir valor...",
"Seleccionar valor..."};
aEntrada = new AccionEntrada(jl);
JMenu entrada = prepararMenu("Entrada", nEntrada,
aEntrada);
jmb.add(entrada);
//
// Preparamos el menú Opciones
//
String nOpciones[] = {"Opcion POR DEFECTO...",
"Opcion SI/NO...", "Opcion SI/NO/CANCELAR...",
"Opción OK/CANCELAR" };
aOpciones = new AccionOpciones(jl);
JMenu opciones = prepararMenu("Opciones", nOpciones,
aOpciones);
jmb.add(opciones);
//
// Añadimos la barra de opciones al marco y
// realizamos los ajustes finales.
setJMenuBar(jmb);
getContentPane().add(jl);
pack();
// Centramos el marco en pantalla
setLocationRelativeTo(null);
setVisible(true);
}
//
// Este método resulta útil para no repetir una
// y otra vez los mismos procedimentos cuando
// vamos a construir un menú
//
JMenu prepararMenu( String nombre_menu,
String[] nombre_opcion,
ActionListener accion) {
final int num_opciones = nombre_opcion.length;
JMenuItem temp;
JMenu menu = new JMenu(nombre_menu);
for(int i=0;i<num_opciones;i++)
{
temp = new JMenuItem(nombre_opcion[i]);
temp.addActionListener(accion);
temp.setActionCommand(i+"");
menu.add(temp);
}
return menu;
}
public static void main(String args[]) {
new DemoDialogos();
}
}
|
Finis.java |
//
// Finis.java
// MenusVarios
//
//
import java.awt.event.*;
public class Finis implements ActionListener {
public void actionPerformed(ActionEvent e){
String accion = e.getActionCommand();
System.out.println("Se ha activado la opción de salida - "
+ accion);
System.exit(0);
};
}
|
JFrame5.java |
//
// JFrame5
//
//
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class JFrame5 extends JFrame {
Dimension dimension_pantalla, dimension_cuadro;
int xpos, ypos;
Toolkit tk = Toolkit.getDefaultToolkit();
JMenuBar jmb = null;
JMenu archivo = null;
JMenuItem salir = null;
JFrame5(String t) {
super(t==null?"Sin t‚tulo":t);
salir = new JMenuItem("Salir...");
salir.addActionListener(new Finis());
if (t==null)
{
archivo = new JMenu("Archivo");
archivo.add(salir);
jmb = new JMenuBar();
jmb.add(archivo);
setJMenuBar(jmb);
}
addWindowListener(
// Si el usuario quiere salir, se ejecuta
//la rutina de salida
// definida en el menú. Esto es correcto si hay una
// sola ventana (JFrame). Si hay más de una, se puede
// crear un ActionEvent con un ActionCommand que indique
// la ventana que se va a cerrar. Este ActionEvent se pasa
// en una llamada directa, accion_salida.actionPerformed(
// el nuevo ActionEvent).
new WindowAdapter(){
public void windowClosing(WindowEvent we) {
salir.doClick();
}
});
}
}
|