Oscilación de Java | Popup y PopupFactory con ejemplos

Popup y PopupFactory son parte de la biblioteca Java Swing. Las ventanas emergentes se utilizan cuando queremos mostrarle al usuario un Componente en la parte superior de todos los demás Componentes en esa jerarquía de contención en particular. PopupFactory es la clase que se utiliza para crear ventanas emergentes. Las ventanas emergentes tienen un ciclo de vida muy pequeño y, por lo general, son componentes livianos que tienen subcomponentes limitados.
Los constructores de la clase son: 
 

  1. PopupFactory(): crea un objeto para la fábrica emergente

Métodos comúnmente utilizados
 

método explicación
getPopup(Componente o, Componente c, int x, int y) Crea una ventana emergente para el componente o que contiene el componente c en una ubicación x, y en el componente propietario.
ocultar() Oculta y desecha la ventana emergente.
mostrar() Hace que la ventana emergente sea visible.

Los siguientes programas ilustrarán el uso de una ventana emergente: 
 

  1. Programa Java para crear una ventana emergente y mostrarla en un marco principal : Creamos una ventana emergente creando una fábrica de ventanas emergentes y usando la función getpopup() que devuelve una ventana emergente. Agregamos esta ventana emergente a un marco f titulado «pop», crearemos una etiqueta y agregaremos t a un panel contenedor p2 y estableceremos el fondo del panel p2 usando la función setBackground(). Agregaremos el panel contenedor p2 a la ventana emergente. También crearemos un botón b titulado «clic» agregado con un oyente de acción y muestra la ventana emergente cuando se presiona el botón. El botón b se agrega a un panel y el panel se agrega al marco. El marco se establece en el tamaño 400.400 mediante setSize(400.400). Finalmente, el marco se muestra usando la función show(). 
     

Java

// Java Program to create a popup and display
// it on a parent frame
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class pop extends JFrame implements ActionListener {
    // popup
    Popup p;
 
    // constructor
    pop()
    {
        // create a frame
        JFrame f = new JFrame("pop");
 
        // create a label
        JLabel l = new JLabel("This is a popup");
 
        f.setSize(400, 400);
 
        PopupFactory pf = new PopupFactory();
 
        // create a panel
        JPanel p2 = new JPanel();
 
        // set Background of panel
        p2.setBackground(Color.red);
 
        p2.add(l);
 
        // create a popup
        p = pf.getPopup(f, p2, 180, 100);
 
        // create a button
        JButton b = new JButton("click");
 
        // add action listener
        b.addActionListener(this);
 
        // create a panel
        JPanel p1 = new JPanel();
 
        p1.add(b);
        f.add(p1);
        f.show();
    }
 
    // if the button is pressed
    public void actionPerformed(ActionEvent e)
    {
        p.show();
    }
    // main class
    public static void main(String args[])
    {
        pop p = new pop();
    }
}
  1. Salida
     

  1. Programa Java para crear una ventana emergente (agregar un panel) y mostrarla en un marco principal y también agregar un oyente de acción a la ventana emergente: Creamos una ventana emergente creando una fábrica de ventanas emergentes y usando la función getpopup() que devuelve una ventana emergente. Estableceremos la apariencia en la apariencia del sistema. Agregamos esta ventana emergente a un marco f titulado «pop», crearemos una etiqueta y un botón b19 titulado «OK» (estableceremos la fuente de la etiqueta en un objeto de fuente específico) y lo agregaremos a un panel contenedor p2 y establece el fondo del panel p2 usando la función setBackground(). Agregaremos el panel contenedor p2 a la ventana emergente. También crearemos un botón b titulado «clic» agregado con un oyente de acción y muestra la ventana emergente cuando se presiona el botón. El botón b se agrega a un panel y el panel se agrega al marco. El marco se establece en el tamaño 400.400 mediante setSize(400.400). finalmente, el marco se muestra usando la función show(). 
     

Java

// Java Program to create a popup (add a panel) and
// display it on a parent frame and also
// add action listener to the popup
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class pop1 extends JFrame implements ActionListener {
    // popup
    Popup po;
 
    // frame
    JFrame f;
 
    // panel
    JPanel p;
 
    // popupfactory
    PopupFactory pf;
 
    // constructor
    pop1()
    {
        // create a frame
        f = new JFrame("pop");
 
        f.setSize(400, 400);
 
        pf = new PopupFactory();
 
        // create a label
        JLabel l = new JLabel("This  is a popup menu");
 
        // create a new button
        JButton b19 = new JButton("OK");
 
        // add action listener
        b19.addActionListener(this);
 
        try {
            // set windows look and feel
            UIManager.setLookAndFeel(UIManager.
                  getSystemLookAndFeelClassName());
        }
        catch (Exception e) {
        }
 
        // create a panel
        p = new JPanel();
 
        p.setBackground(Color.blue);
 
        // create a font
        Font fo = new Font("BOLD", 1, 14);
 
        l.setFont(fo);
 
        // add contents to panel
        p.add(l);
        p.add(b19);
 
        p.setLayout(new GridLayout(2, 1));
 
        // create a popup
        po = pf.getPopup(f, p, 180, 100);
 
        // create a button
        JButton b = new JButton("click");
 
        // add action listener
        b.addActionListener(this);
 
        // create a panel
        JPanel p1 = new JPanel();
 
        p1.add(b);
        f.add(p1);
        f.show();
    }
 
    // if the button is pressed
    public void actionPerformed(ActionEvent e)
    {
        String d = e.getActionCommand();
        // if ok button is pressed hide the popup
        if (d.equals("OK")) {
            po.hide();
 
            // create a popup
            po = pf.getPopup(f, p, 180, 100);
        }
        else
            po.show();
    }
    // main class
    public static void main(String args[])
    {
        pop1 p = new pop1();
    }
}
  1. Salida
     

Publicación traducida automáticamente

Artículo escrito por andrew1234 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *