Como detectar el click derecho encima de un JButton en java

publicado por: Anonymous

He estado buscando la manera pero todas me tiran un error, me gustaría que me ayuden en esto. Estoy haciendo un buscaminas y me falta que cuando le de click derecho me salga una bandera de precaución.

JButton boton = new JButton();

solución

Puedes hacerlo agregando un ActionListener y comprobar los modificadores:

    boton.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            if ((e.getModifiers() & 4) !=0){
                 // boton derecho
            }
        }
    });

Boton izquierda sería getModifiers() & 16 y el boton mediano getModifiers() & 8.

Alternativamente podrías usar un MouseListener:

    MouseListener mouseListener= new MouseListener() {

        @Override
        public void mouseReleased(MouseEvent e) {
        }

        @Override
        public void mousePressed(MouseEvent e) {
        }

        @Override
        public void mouseExited(MouseEvent e) {
        }

        @Override
        public void mouseEntered(MouseEvent e) {
        }

        @Override
        public void mouseClicked(MouseEvent e) {
            System.out.println(e.getButton());
            // MouseEvent.BUTTON3 es el boton derecho
        }
    };
    boton.addMouseListener(mouseListener);

Si usas onMousePressed y onMouseReleased puedes mostrar tu información solamente mientras el botón esta presionado.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *