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:
- 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:
- 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(); } }
- Salida :
- 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(); } }
- Salida :
- https://docs.oracle.com/javase/7/docs/api/javax/swing/Popup.html
- https://docs.oracle.com/javase/7/docs/api/javax/swing/PopupFactory.html
Publicación traducida automáticamente
Artículo escrito por andrew1234 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA