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

时间:2013-06-28 22:03:11

标签: java-me key pressed

我想在canvas类中使用keyPressed函数。但我不想立即调用此功能。
我尝试使用等待函数,但它会导致错误(我认为它没有任何用处)。我该怎么办?

1 个答案:

答案 0 :(得分:0)

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

keyPressed。你不能拖延。 但是你可以根据需要自己调用keyPressed。如果你想从现在起10秒后调用keyPressed,你应该创建一个带有计时器和循环的线程,询问现在是否已经过了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);

  }

}