看板 java 關於我們 聯絡資訊
小弟寫了一個Timer的小程式 我想控制它的delay 卻出了點問題 private int speed = 200; public Animation() { addKeyListener(new KeyAdapter() { Timer timer = new Timer(speed, new ActionListener() { public void actionPerformed(ActionEvent e) { repaint(); } }); public void keyPressed(KeyEvent e) { switch(e.getKeyCode()) { case KeyEvent.VK_DOWN: speed -= 50; break; //這兩個speed不會動 case KeyEvent.VK_UP: speed += 50; break; case 82: timer.start(); break; //case 82 83會作用 case 83: timer.stop(); break; default: keyChar = e.getKeyChar(); } System.out.println(speed); //速度有做改變, 但是repaint的速度還是沒變 } }); } 例如一開始是200 按兩次案件VK_UP cmd內會印出300 但是repaint速度並沒有改 怎麼才能解決呢? 謝謝各位的幫助 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.193.0.248
tkcn:這種需求似乎就不該用這種 timer 了 04/08 18:31
uziel:不確定原 PO 想做什麼,但是顯然改變 Timer 間隔時間的方式 04/08 19:21
uziel:有誤,應該呼叫該 Timer 的 setDelay() 方法才對 04/08 19:24
sn153246:沒注意到有set這個方法..謝各為解答 04/08 21:44
baconcsie:你可以用用看thread的寫法,然後用sleep 04/10 17:07