每次单击鼠标时单独执行操作

Mat*_*itt 2 java swing mouseevent mouse-listeners

我试图让java在一次点击后执行一个操作,然后在再次按下相同的按钮时执行另一个操作,无论点击之间有多长时间.这可能吗?这是我到目前为止所尝试的:

button.addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent e) {
        if (e.getClickCount()%2 == 1) {
            System.out.println("You have clicked once");
        }

        if(e.getClickCount()%2 == 0){
            System.out.println("You have clicked twice");
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

这不是我想要的,因为按钮上似乎有一些计时器使它更像是双击.所以我显然使用了错误的方法或其他东西,但我不知道还有其他选择.我希望在第一次点击后再次点击鼠标的速度并不重要.希望有道理.非常感谢任何帮助,谢谢.

Eng*_*uad 6

你可以使用一个标志来做到这一点.就像是:

private boolean isFirstClick = true;

// ...

button.addMouseListener(new MouseAdapter()
{
    public void mouseClicked(MouseEvent e)
    {
        if(isFirstClick)
        {
             System.out.println("You have clicked once");
             isFirstClick = false;
        }
        else
        {
             System.out.println("You have clicked twice");
             isFirstClick = true;
        }
    }
});
Run Code Online (Sandbox Code Playgroud)