如何在Java中使事件随机发生?

如何在Java中使事件随机发生?,java,random,timer,Java,Random,Timer,所以我正在制作一个游戏,我希望用户能够打击犯罪。只是我不想让他们在一段时间内再次打击犯罪,最多10秒的延迟。我知道我可以使用数学。不知怎么的随机,但我很难弄清楚如何在这种情况下使用它 为了澄清,我想要一个标签和两个表示“是”或“否”的按钮在随机时间段(最多20秒)后变得可见。有人能解释一下如何做到这一点,或者是否有更好的方法做到这一点 提前谢谢 基本上,您可以在完成战斗后创建一个时间戳,如长时间戳=System.currentTimeMillis。您现在可以立即禁用该按钮 然后,您可以创建一个随

所以我正在制作一个游戏,我希望用户能够打击犯罪。只是我不想让他们在一段时间内再次打击犯罪,最多10秒的延迟。我知道我可以使用数学。不知怎么的随机,但我很难弄清楚如何在这种情况下使用它

为了澄清,我想要一个标签和两个表示“是”或“否”的按钮在随机时间段(最多20秒)后变得可见。有人能解释一下如何做到这一点,或者是否有更好的方法做到这一点


提前谢谢

基本上,您可以在完成战斗后创建一个时间戳,如长时间戳=System.currentTimeMillis。您现在可以立即禁用该按钮

然后,您可以创建一个随机对象并调用它的下一个int方法,其跨度为10-20秒,如下所示

Random r = new Random();
int span = r.nextInt(10);
此外,您只需在数学上将id相加到毫秒

span += 1000;
然后,您将创建一个将在gui更新函数中调用的方法,或一个单独的线程,该线程将根据上次战斗的时间戳检查当前毫秒数

if(System.currentTimeMillis() >= span + timestamp) {
    // activate
}

我会尝试创建一个新的线程,该线程不会为您的随机时间量睡眠,然后再次启用该按钮

用户点击按钮JButtonsetDisabledtrue后,可以禁用按钮20秒;基本上你可以创建一个类似于这个系统的时间戳。CurrentTimeMills这个问题并不清楚你想要什么。如果我只看标题,答案很简单,这里已经解释过了:注意:要得到10-20范围内的数字,你必须做r.nextInt10+10。