JButton con popup
Posted on : 04-12-2008 | By : edisoncor | In : java, Swing
1
Hola en esta oportunidad vamos a crear un JButton el cual lo combinaremos con un popup con el objetivo de tener un boton el cual podamos escoger múltiples acciones,
Lo primero vamos a crear la clase PopupButton que hereda de JToggleButton, a continuación vamos a declarar dos atributos:
private JPopupMenu popupMenu = new JPopupMenu(); el que representa el popup private boolean popupInvisible = true; que representa si el popup es invisible o no
El constructor de la clase:
public PopupButton() { setFocusable(false); putClientProperty("JButton.buttonType", "textured"); addMouseListener(createButtonMouseListener()); popupMenu.addPopupMenuListener(createPopupMenuListener()); JComboBox box = new JComboBox(); Object preventHide = box.getClientProperty("doNotCancelPopup"); putClientProperty("doNotCancelPopup", preventHide); }
Metodo para agregar items al JTogleButton
public void addItem(JMenuItem item){ popupMenu.add(item); }
Método que presenta el popup al dar click sobre el
private MouseListener createButtonMouseListener() { return new MouseAdapter() { @Override public void mousePressed(MouseEvent e) { if (popupMenu.isShowing()) { hidePopupMenu(); } else { showPopupMenu(); }}};}
Método que agrega a cada uno de los ítem la propiedad de fijar en el JTogleButton si esta o no seleccionado
private PopupMenuListener createPopupMenuListener() { return new PopupMenuListener() { public void popupMenuWillBecomeVisible(PopupMenuEvent e) { }. public void popupMenuWillBecomeInvisible(PopupMenuEvent e) { if (popupInvisible) { setSelected(false); } } public void popupMenuCanceled(PopupMenuEvent e) { setSelected(false); }};}
Aquí el enlace para la Descarga el proyecto aqui






Hol, oye podrias subir de nuevo el proyecto, el enlace esta roto. Por cierto muy util el programa.