Social

lunes, 13 de enero de 2014

Java: Popup con swing.

Entre las utilidades de la librería swing de java existe la de JPopup. Esta clase nos permite crear un panel emergente o pop up al cual se le pueden agregar JMenuItem y realizar acciones dependiendo de la selección. Aquí un ejemplo de como se ve:
Para realizar el ejemplo anterior se puede utilizar el siguiente código:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
public class PopupExample extends JFrame {
JLabel jLabel;
JPopupMenu jPopupMenu;
private void prepararUI() {
jLabel = new JLabel("Elemento", JLabel.CENTER);
getContentPane().add(jLabel);
//Le agregamos los elementos al Popup
jPopupMenu = new JPopupMenu();
JMenuItem jMenuItem_A = new JMenuItem("Menu Item A");
JMenuItem jMenuItem_B = new JMenuItem("Menu Item B");
JMenuItem jMenuItem_C = new JMenuItem("Menu Item C");
jPopupMenu.add(jMenuItem_A);
jPopupMenu.add(jMenuItem_B);
jPopupMenu.add(jMenuItem_C);
jMenuItem_A.addActionListener(menuActionListener);
jMenuItem_B.addActionListener(menuActionListener);
jMenuItem_C.addActionListener(menuActionListener);
addMouseListener(myMouseAdapter);
}
//Creamos un MouseAdapter para controlar cuando mostrar el popup.
MouseAdapter myMouseAdapter = new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
jPopupMenu.show(e.getComponent(), e.getX(), e.getY());
}
}
@Override
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
jPopupMenu.show(e.getComponent(), e.getX(), e.getY());
}
}
};
ActionListener menuActionListener = new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
jLabel.setText(e.getActionCommand());
}
};
private static void crearGUI() {
PopupExample myFrame = new PopupExample();
myFrame.setTitle("javainutil.blogspot.com");
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.setSize(400, 300);
myFrame.prepararUI();
myFrame.setVisible(true);
}
public static void main(String[] args) {
crearGUI();
}
}
view raw Popup.java hosted with ❤ by GitHub

1 comentario :