Botao Direito do Mouse

4 respostas
R

Olá como faço para implementar um método para o botão direito do Mouse? Aquela janelinha do windows de copiar, recortar…etc
Achei um metodo que chama MouseEvent.BUTTON1 para o botao esquerdo e MouseEvent.BUTTON3 para o botao direito… O que devo implementar para conseguir esta funcionalidade?

4 Respostas

andbecker
R

Desculpe pela pergunta, já que sou um leigo no java. No link que vc passou tem o seguinte código:
Que seria um menu popup, aonde eu aplico esse código, em qual classe?, ou devo criar uma classe somente para tratar de eventos do mouse?
E a outra coisa a linha— meuLabel.addMouseListener(new MouseAdapter() { ----
Vem antes do public void mouseClicked???
Obrigado pela ajuda.

meuLabel.addMouseListener(new MouseAdapter() {

public void mouseClicked(MouseEvent me) {

//Verificando se o botão direito do mouse foi clicado

if ((me.getModifiers() & MouseEvent.BUTTON3_MASK) != 0) {

JPopupMenu menu = new JPopupMenu();

JMenuItem item = new JMenuItem(Clique-me);

menu.add(item);
item.addActionListener(new ActionListener(){   
            public void actionPerformed(ActionEvent ae) {   
                JOptionPane.showMessageDialog(null, "Fui clicado !");   
            }   
        });   

        menu.show(this, me.getX(), me.getY());   
    }   
}

});

andbecker

realmente o código que te indiquei estava uma zona confusa...

adicione o código no construtor da classe, onde está this, é possivel definir o nome de um painel, ou textarea, pra diminuir a area do clique...

this.addMouseListener(new MouseAdapter() {

            public void mouseClicked(MouseEvent me) {
                //Verificando se o botão direito do mouse foi clicado
                if ((me.getModifiers() & MouseEvent.BUTTON3_MASK) != 0) {
                    JPopupMenu menu = new JPopupMenu();
                    add(menu);
                    JMenuItem item = new JMenuItem("Item 1");
                    menu.add(item);
                    JMenuItem item2 = new JMenuItem("Item2");
                    menu.add(item2);
                    menu.show(menu, me.getX(), me.getY());

                }
            }
        });
R

Não funcionou…adicionei o codigo na classe mas não funfou.

Tenho que adicionar somente em uma classe, ou devo criar uma clsse para que as demais chamem este método?
Obrigado

Criado 14 de abril de 2011
Ultima resposta 15 de abr. de 2011
Respostas 4
Participantes 2