我正在尝试编写一个使用 thread.sleep()的程序,它只允许整数。我的问题是如何使用该范围之间的所有数字创建一个程序,该程序将在2.5-3.5秒(或使用double的任意随机范围)范围内获取一个随机数。我试图用它来创建一个随机自动点击器,用于理解转换这些数据类型。任何帮助,将不胜感激。谢谢!
这就是我所拥有的一切(道歉,如果这不是甚至关闭我使用了所有可以找到帮助的信息。)
Robot bot = new Robot();
int rangeMin=2.5, rangeMax=3.5, pressMax = 0, pressMin = 0;
int randomvalue1 = (r.nextInt() * ((pressMax - pressMin) + 1)) + pressMin;
int randomValue2 = (r.nextInt() * ((rangeMax - rangeMin) + 1)) + rangeMax;
for (int x=0; x<3;x++);
Thread.sleep(randomvalue1);
bot.mousePress(InputEvent.BUTTON1_MASK);
Thread.sleep(randomvalue2);
bot.mouseRelease(InputEvent.BUTTON1_MASK);
}
答案 0 :(得分:1)
您的问题是衡量单位。
您的问题定义说明了2.5-3.5 秒 ,并且您计算的randomvalue1
和randomvalue2
包含 秒 强>
Thread.sleep()
的参数必须是 毫秒数 。
因此,您需要将秒数转换为毫秒数,然后再将其传递给Thread.sleep()
。
答案 1 :(得分:0)
你太复杂了。
只需从
开始int delayInMilliSeconds = 2500;
然后在该变量中添加0到1000之间的随机值。
然后睡了几毫秒。
完成。你有2.5到3.5秒的延迟。
答案 2 :(得分:0)
来自GhostCat的方法的Java代码示例:
Thread.sleep(2500 + ((int) (Math.random() * 1000)));
另请参阅Java API文档,例如:
答案 3 :(得分:0)
成品,固定。它使点击的长度随机,以及单击之间的等待。
Robot bot = new Robot();
int rangeMin=2445, rangeMax=3550, pressMax = 100, pressMin = 80;
for (int x=0; x<1620;x++) {
int randomClick = (60+ (int) (Math.random()*100));
int randomValue = (1800+ (int) (Math.random()*1000));
int randomWait = (50+ (int) (Math.random()*100));
Thread.sleep(randomValue);
bot.mousePress(InputEvent.BUTTON1_MASK);
Thread.sleep(randomClick);
bot.mouseRelease(InputEvent.BUTTON1_MASK);
Thread.sleep(randomWait);
Thread.sleep(randomValue);
bot.mousePress(InputEvent.BUTTON1_MASK);
Thread.sleep(randomClick);
bot.mouseRelease(InputEvent.BUTTON1_MASK);
System.out.println(randomValue);
System.out.println(randomClick);
System.out.println(randomWait);