Featured Posts

JFrame transparente con EdisoncorSx Hace algún tiempo escribí un post sobre JFrame transparente, y aca sobre otra forma de realizarlo, ahora vuelvo a escribir uno nuevo pero ahora es mediante la...

Readmore

Ejemplo de panel Avatar de EdisoncorSx En este primer ejemplo vamos a ver como es la utilización del componente PanelAvatarChooser de la librería EdisoncorSx, para ello vamos a utilizar netbeans,...

Readmore

Agregar Libreria EdisoncorSx a paleta de Netbeans Una forma sencilla de poder utilizar la librería EdisoncorSx a Netbeans es integrándola como librería nativa, lo cual permitirá una fácil...

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

Señal Paternal WTF Solo en mi lindo país Ecuador, se dan este tipo de señales [caption id="attachment_599" align="aligncenter" width="600" caption="Señal...

Readmore

Edisoncor Weblog Rss

JButton con popup

Posted on : 04-12-2008 | By : edisoncor | In : Swing, java

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

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