MouseAdapter

2 respostas
sammaraAdriana

Por que não está funcionando o método getClickCount?

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class MouseDetailsFrame extends JFrame
{
    private JLabel lStatus;
    private String details;

    public MouseDetailsFrame()
    {
        super("Testando adaptadores");

        lStatus=new JLabel("Click com o mouse");
        add(lStatus,BorderLayout.SOUTH);
        addMouseListener(new MouseClickHandler());
    }
    private class MouseClickHandler extends MouseAdapter
    {
        public void mouseClicked(MouseEvent e)
        {
            int xPos=e.getX();
            int yPos=e.getY();

            details=String.format("Clicou %d vez(es)",e.getClickCount());

            if(e.isMetaDown())
                details+=" Com o botão direito";
            else if(e.isAltDown())
                details+=" Com o botão do centro";
            else
                details+=" Com o botão esquerdo";

            lStatus.setText(details);
        }
    }
    public static void main(String args[])
    {
        MouseDetailsFrame f=new MouseDetailsFrame();
        f.setVisible(true);
        f.setSize(520,400);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

2 Respostas

Eric_Yuzo

Aparentemente está tudo certo. Não vejo porque de não funcionar o getClickCount. O que aparece na label quando ocorre o clique?

Complementando: Se o problema está na contagem ficar reiniciando, isto é normal. O método getClickCount retorna a quantidade de cliques consecutivos. Dentro de determinado intervalo de tempo (não sei especificamente quanto tempo) a contagem é reiniciada. É o mesmo efeito do duplo-clique para abrir um arquivo, se demorar muito para dar o segundo clique, não é considerado duplo-clique.

sammaraAdriana

Eric Yuzo:
Aparentemente está tudo certo. Não vejo porque de não funcionar o getClickCount. O que aparece na label quando ocorre o clique?

Complementando: Se o problema está na contagem ficar reiniciando, isto é normal. O método getClickCount retorna a quantidade de cliques consecutivos. Dentro de determinado intervalo de tempo (não sei especificamente quanto tempo) a contagem é reiniciada. É o mesmo efeito do duplo-clique para abrir um arquivo, se demorar muito para dar o segundo clique, não é considerado duplo-clique.

Brigadão Eric, era isso mesmo, eu estava demorando a clicar novamente…

Criado 22 de novembro de 2010
Ultima resposta 23 de nov. de 2010
Respostas 2
Participantes 2