Crear ventana emergente en Java

Rupam Yadav 12 octubre 2023
  1. Crear una ventana emergente en Java usando JOptionPane
  2. Crear ventana emergente en Java usando JDialog
Crear ventana emergente en Java

Java nos permite crear varios tipos de componentes GUI usando bibliotecas como AWT, Swing y JavaFX. En este tutorial, veremos el cuadro de diálogo y aprenderemos a crearlo. Usaremos dos clases, JOptionPane y JDialog, en los siguientes ejemplos.

Crear una ventana emergente en Java usando JOptionPane

La forma más sencilla de crear una ventana emergente de Java o un diálogo es usar la clase JOptionPane como parte del paquete javax.swing, que viene con muchos métodos útiles. Algunas de las técnicas comunes se enumeran a continuación:

Método Descripción
showMessageDialog() Muestra un mensaje dentro de un marco especificado
showInputDialog() Obtenga información del usuario en la ventana emergente
showConfirmDialog() Muestra el mensaje y le pide al usuario un commit como sí, no o cancelar.

Los siguientes son ejemplos de los métodos:

Ejemplo 1: Mostrar un mensaje dentro de un JFrame creando un objeto Jframe, llamar al método JOptionPane.showMessageDialog() y pasar el primer objeto jFrame como su primer argumento. El segundo argumento es el mensaje que queremos mostrar en el diálogo.

import javax.swing.*;

public class PopUpJava {
  public static void main(String[] args) {
    JFrame jFrame = new JFrame();
    JOptionPane.showMessageDialog(jFrame, "Hello there! How are you today?");
  }
}

Producción:

ventana emergente java 1

Ejemplo 2: Este ejemplo usa la función JOptionPane.showInputDialog() para mostrar un mensaje con un campo de entrada para obtener la entrada. Aquí, para almacenar la entrada, usamos una variable String y luego se la mostramos al usuario usando showMessageDialog().

import javax.swing.*;

public class PopUpJava {
  public static void main(String[] args) {
    JFrame jFrame = new JFrame();
    String getMessage = JOptionPane.showInputDialog(jFrame, "Enter your message");

    JOptionPane.showMessageDialog(jFrame, "Your message: " + getMessage);
  }
}

Producción:

ventana emergente java 2

ventana emergente java 3

Ejemplo 3: Usamos la función JOptionPane.showConfirmDialog() para mostrar un diálogo con tres botones: Sí, No y Cancelar. Al igual que los otros métodos, pasamos un objeto jFrame y un mensaje para mostrar. El método showConfirmDialog() devuelve un int que especifica el botón en el que se hizo clic: 0 significa Sí, 1 significa No, y cualquier otro entero especifica que se hizo clic en el botón Cancelar.

import javax.swing.*;

public class PopUpJava {
  public static void main(String[] args) {
    JFrame jFrame = new JFrame();
    int result = JOptionPane.showConfirmDialog(jFrame, "Press any button to close the dialog.");

    if (result == 0)
      System.out.println("You pressed Yes");
    else if (result == 1)
      System.out.println("You pressed NO");
    else
      System.out.println("You pressed Cancel");
  }
}

Producción:

ventana emergente java 4

Crear ventana emergente en Java usando JDialog

En el segundo método, usamos la clase Jdialog. Para crear un marco, necesitamos un objeto jFrame que se pasa al constructor de Jdialog como argumento cuando creamos un objeto de JDialog y jd. Ahora necesitamos establecer el diseño del diálogo que especifica cómo colocar los componentes dentro del diálogo. Configuramos la función FlowLayout() que organiza los componentes en una línea usando jd.setLayout().

Para establecer la posición y el tamaño de la ventana emergente, usamos la función setBounds(), donde los dos primeros argumentos son posiciones x e y, y los dos últimos argumentos son ancho y alto.

Creamos una variable jLabel con el mensaje de texto pasado dentro del constructor para mostrar un texto. Para permitir que el usuario cierre el diálogo, creamos un objeto JButton con el texto Close. Ahora, tenemos que configurar la acción a realizar cuando se hace clic en el botón de cierre. Para hacer eso, llamamos a la función addActionListener() que anula el método actionPerformed() en el que especificamos la acción a realizar.

Por último, agregamos todos los componentes u objetos que creamos usando jd.add().

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class PopUpJava {
  public static void main(String[] args) {
    JFrame jFrame = new JFrame();

    JDialog jd = new JDialog(jFrame);

    jd.setLayout(new FlowLayout());

    jd.setBounds(500, 300, 400, 300);

    JLabel jLabel = new JLabel("Press close button to close the dialog.");

    JButton jButton = new JButton("Close");
    jButton.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        jd.setVisible(false);
      }
    });

    jd.add(jLabel);
    jd.add(jButton);
    jd.setVisible(true);
  }
}

Producción:

ventana emergente java 5

Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Artículo relacionado - Java GUI

Artículo relacionado - Java Swing