Featured Posts

Demos EdisoncorSx En el siguiente enlace podrán encontrar algunos demos de las librerías EdisoncorSx http://code.google.com/p/edisoncorsx/downloads/list

Readmore

Actualización EdisoncorSx 0.07 Ha sido un largo tiempo desde la ultima vez que escribí por ultima vez, debo confesar que al blog lo he tenido un poco olvidado(por algunas razones laborales), per...

Readmore

EdisoncorSx Hola amigos, hace algún tiempo que no pósteo nada en absoluto y al blog lo he tenido un poco olvidado, pero mas vale tarde que nunca, en está ocasión...

Readmore

Actualización EdisoncorSx 0.06 Hola como están ahora con poco tiempo para dedicarme al blog, pero bueno por ahí he sacado un tiempo y he realizado algunas actualizaciones, esperando que todas...

Readmore

EdisoncorSx integrado con GoogleCode a través de NetBeans... En este tútorial voy a explicar como puedes tener un Netbeans el proyecto EdisoncorSx y poder tener los cambios que se van a realizar, lo que debes tener es instalado...

Readmore

Edisoncor Weblog Rss

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

Facebook comentarios:

Comments (1)

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

Write a comment

Advertise Here