java - 每次鼠标单击时的单独操作

标签 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");
        }
    }
});

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

最佳答案

您可以使用标志来完成。像这样的东西:

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;
        }
    }
});

关于java - 每次鼠标单击时的单独操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9960617/

相关文章:

java - 将面板和文本框放在同一个框架中

java - 必须在 EDT 中调用 AWT 类中的所有方法,即非 Swing 类中的方法吗?

javascript - 网页上的鼠标行为 – 我不希望标记文本

Java - 使用条件和 Lambda 在数组中查找元素

java - 删除 JTable 内的 JCombobox 边框

javascript - 如何根据容器内的鼠标位置正确滚动溢出的 div

javascript - 半秒后使用 AngularJS 在鼠标悬停时显示子菜单

java - 当我用鼠标旋转它时,立方体逐渐缩小..

java - 如何使用Java的目录流仅获取目录内的文件/子目录而不是其他子目录

java - 创建 YouTubePlayerView 时出错