2013-06-28 35 views

回答

0

當用戶單擊某個密鑰時,keyPressed由AMS(應用程序管理軟件)調用。你不能拖延。 但你當然可以自己調用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); 

    } 

} 
+0

然後在MyCanvasObject中調用new keyPressedAfterSeconds(this,10); –

相關問題