Java 再次执行操作前的计时器

Java 再次执行操作前的计时器,java,multithreading,timer,Java,Multithreading,Timer,在switch语句中,我有一个case,它表示游戏中的注销按钮。问题是,如果一个玩家反复点击它,它就会一次又一次地执行c.logout()方法,从而在我的游戏中造成巨大的延迟。我想在玩家再次点击按钮之前添加一个计时器。我是线程和计时器的新手,所以我非常感谢您在这方面的帮助。特别是如果你能解释的话。非常感谢 这是我的密码 case 9154: // Logout Button c.logout(); break; 多亏了Ryan 只是制作一个simpile

在switch语句中,我有一个case,它表示游戏中的注销按钮。问题是,如果一个玩家反复点击它,它就会一次又一次地执行c.logout()方法,从而在我的游戏中造成巨大的延迟。我想在玩家再次点击按钮之前添加一个计时器。我是线程和计时器的新手,所以我非常感谢您在这方面的帮助。特别是如果你能解释的话。非常感谢

这是我的密码

    case 9154: // Logout Button
        c.logout();
        break;
多亏了Ryan

只是制作一个simpile布尔值来跟踪登录状态

case 9154: // Logout Button
    if (loggedIn) {
        loggedIn = false;
        c.logout();
    }
    break;

您可能不必启动新线程,只需使用锁来防止调用注销两次

第一个谷歌搜索结果就是一个例子:


您可以保留其状态变量:

case 9154: // Logout Button
    if (loggedIn) {
        loggedIn = false;
        c.logout();
    }
    break;

然后在他们登录时将loggedIn设置回true。

请通过讲述更多相关细节来改进您的问题。请帮助我们了解可能出现的问题。没什么好说的了。如果一个玩家点击了“退出”按钮,整个游戏就会延迟。我需要一个计时器,然后再让他们点击它,如果他们已经点击过一次。hovercraftfullofeels单击按钮后禁用该按钮如何?首先,您使用的GUI库是什么?来吧,我们不能读心。为什么按下按钮会导致滞后?什么逻辑在那里遭到抨击?我猜你忘了用标签。真不敢相信我没有试过所有我试过的东西。哈哈,非常感谢你。