如何在特定时间后调用keyPressed函数



我想在canvas类中使用keyPressed函数。但是我不想立即调用这个函数
我尝试使用wait函数,但它导致了一个错误(我认为它没有任何用处)。我该怎么办?

当用户单击某个键时,AMS(应用程序管理软件)会调用

keyPressed。你不能拖延。但你当然可以随心所欲地按自己的键。如果你想在10秒后调用keyPressed,你应该创建一个带有计时器和一个循环的Thread,询问10秒是否已经过去。类似这样的东西:(未测试)

class keyPressedAfterSeconds implemments Runnable {
  MyCanvasObject myCanvas = null;
  int seconds = 10; // Default
  long startTime;
  public keyPressedAfterSeconds(MyCanvasObject myCanvas, int seconds) {
    this.myCanvas = myCanvas;
    this.seconds = seconds;
    new Thread(this).start();
  }
  public run() {
    startTime = System.currentTimeMillis();
    while(System.currentTimeMillis()-startTime<seconds*1000) {
      try { // Wait 100 ms and ask again
        Thread.sleep(100);
      } catch (Exception e) {}
    }
    myCanvas.keyPressed(someKeycode);
  }
}

相关内容

  • 没有找到相关文章

最新更新