Я хочу использовать функцию keyPressed в классе холста. но я не хочу сразу вызвать эту функцию.
Я пытаюсь использовать функцию ожидания, но это вызывает ошибку (я думаю, что для этого не используется). что мне делать?Как можно вызвать функцию keyPressed после определенного времени?
0
A
ответ
0
keyPressed вызывается AMS (Application Management Software), когда пользователь нажимает клавишу. Вы не можете отложить это. Но вы можете, конечно, позвонить keyPressed самостоятельно, как хотите. Если вы хотите вызвать keyPressed через 10 секунд, вы должны создать 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);
}
}
+0
И затем в вашем MyCanvasObject вы вызываете новый keyPressedAfterSeconds (это, 10); –
я не могу поверить, что после того, как 10hour нет ответа в стек переполнения !!!!!!!! – zahraTZ