8.4 VENTANAS EMERGENTES

 

Hola a todos, ¿qué tal? Vamos a ver los diferentes tipos de ventanas emergentes o cuadros de diálogo. Los cuadros de diálogo son ventanas que aparecen para interactuar con el usuario, pueden aparecer la ventana con dos botones Aceptar y Cancelar para aceptar o cancelar una acción, otra ventana que nos permita seleccionar un fichero o un documento… Los tipos de ventana emergentes son los siguientes:

·         Cuadros de diálogo: utiliza la clase JOptionPane.

·         Selección de ficheros: utiliza la clase JFileChooser.

·         Selector de color: es una ventana que aparece con una paleta de colores, utiliza la clase JColorChooser.

Vamos a ver la clase JOptionPane que ya vimos en el bloque Programación Básica, pero ahora la vamos a ver más detallada. Esta clase posee una serie de métodos, entre ellos se encuentran:

·         showInputDialog(): para introducir información en la ventana emergente.

·         showMensageDialog(): una ventana emergente que nos muestra información.

·         showConfirmDialog(): para confirmar una acción.

·         showOptionDialog(): para seleccionar una opción.

Lo vemos como siempre en una práctica cuyo código inicial es el siguiente:

package graficas;

 

import javax.swing.*;

 

import java.awt.event.ActionEvent;

 

import java.awt.event.ActionListener;

 

public class VentanaEmergente {

 

      public static void main(String[] args) {

       

             

        MarcoCDialogo mimarco =new MarcoCDialogo ();

        mimarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        mimarco.setVisible(true);

      

      

  }

 

}

 

class MarcoCDialogo  extends JFrame{  

 

  public MarcoCDialogo () {

        setBounds(500, 300, 400, 250);        

        add(new LaminaCDialogo());

 

      

  }

 

 

}

 

class LaminaCDialogo  extends JPanel{ 

  public LaminaCDialogo() {                           

                           

        boton1= new JButton("boton1");

        boton2= new JButton("boton2");

        boton3= new JButton("boton3");

        boton4= new JButton("boton4");

 

      

        boton1.addActionListener(new Accion_botones());

        boton2.addActionListener(new Accion_botones());

        boton3.addActionListener(new Accion_botones());

        boton4.addActionListener(new Accion_botones());

 

        add(boton1);

        add(boton2);

        add(boton3);

        add(boton4);

 

 

  }

 

 

  private class Accion_botones implements ActionListener{

 

        @Override

        public void actionPerformed(ActionEvent e) {

               // TODO Auto-generated method stub

               if (e.getSource()==boton1) {

                      System.out.println("1");

               }else if (e.getSource()==boton2) {

                      System.out.println("2");

               }else if (e.getSource()==boton3) {

                      System.out.println("3");

               }else {

                      System.out.println("4");

               }

        }

      

  }

 

 

  JButton boton1;

  JButton boton2;

  JButton boton3;

  JButton boton4;

 

}

Este archivo está formado primero por la clase principal main, una clase MarcoCDialogo que hereda de JFrame dentro del constructor de la clase establecemos el tamaño de la ventana e instanciamos la clase LaminaCDialogo.

Tenemos la clase LaminaCDialogo que hereda de JPanel, dentro de esta clase creamos 4 botones, ponemos estos botones a la escucha de un evento tipo ActionListener y añadimos los botones a la lámina. Y la última clase Accion_botones que implementa la interfaz ActionListener, dentro del método actionPerformed y con varios condicionales indicamos que cuando se pulse uno de los botones se imprima la frase que hay dentro de System.out en consola.



Es decir, si pulsamos el botón 1 en la consola aparece el número 1, si pulsamos el botón 3 en consola aparece el número 3.

Bien, pues nuestra práctica va a consistir en sustituir los System.out por una ventana de JOptionPane, en lugar de que nos imprima información en la consola nos aparezca una ventana emergente. Antes de empezar sería recomendable ir a la API de Java y ver con profundidad la clase JOptionPane y sus métodos para ver su uso.

En el código vamos a sustituir el System.out del botón 1 por una ventana de JOptionPane que nos muestre un mensaje, vamos a utilizar el método más sencillo que nos pide dos parámetros: el componente padre y el mensaje:

               if (e.getSource()==boton1) {

                      //System.out.println("1");

                     

                      JOptionPane.showMessageDialog(LaminaCDialogo.this, "Este es el botón 1");

               }

El componente padre es la lámina que es donde está ubicado el botón y donde se va a ejecutar la ventana emergente. Si ejecutamos, pulsamos el botón 1:



Solo le hemos pasado dos parámetros pero podemos pasarle más parámetros para que nos añada un título y nos cambie el icono que aparece en la ventana:

JOptionPane.showMessageDialog(LaminaCDialogo.this, "Este es el botón 0", "Información", 1);

Si probamos ahora:



El tercer parámetro que hemos añadido ha sido el título y el cuarto es un número que corresponde a un icono. En la API de Java podéis ver los números que corresponden a cada icono o podéis ir probando cambiando los números para ver que iconos aparecen.

Vamos al segundo botón vamos a utilizar una ventana de JOptionPane para que el usuario introduzca algo.

else if (e.getSource()==boton2) {

                      //System.out.println("2");

                     

                      JOptionPane.showInputDialog("Introduce tu nombre");

               }

Probamos:



Es el tipo de método más fácil, podemos indicar más parámetros, el componente padre, el título, el icono:

JOptionPane.showInputDialog(LaminaCDialogo.this, "Introduce tu nombre", "Información del usuario", 2);

Ejecutamos:



Vamos al tercer botón, utilizaremos una ventana de JOptionPane para elegir una opción:

else if (e.getSource()==boton3) {

                      //System.out.println("3");

                     

                      JOptionPane.showConfirmDialog(LaminaCDialogo.this, "Elige opción", "Opciones", 1);

               }

El primer parámetro es la lámina, el segundo es la frase que va a mostrar la ventana, el tercer parámetro el título y el cuarto parámetro es el icono. Probamos:



Y vamos al cuarto botón y el último también utilizamos una ventana de JOptionPane de opciones:

else {

                      //System.out.println("4");

                     

                      JOptionPane.showConfirmDialog(LaminaCDialogo.this, "Elige opción", "Opciones", 1, 1);

               }

El cual podemos añadir más parámetros.

Esto ha sido todo en el bloque de Aplicaciones gráficas, si habéis llegado hasta aquí agradeceros vuestra constancia, os animo a seguir aún quedan muchas cosas por ver, reitero en muchos posts que podéis enviar vuestras dudas pero también vuestros propios ejemplos para ver también otra forma de desarrollarlos.

Os espero en el próximo bloque veremos los despliegues de aplicaciones. Saludos!

8.3.4 Creación de una disposición libre << >> 9.1 ARCHIVOS JAR



No hay comentarios:

Publicar un comentario