0
好的,我如何使用Applet從鍵盤移動一個球?Java Applet - 在屏幕上移動一個球
我到目前爲止這個代碼,那什麼都不做。
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class KeyboardGame extends Applet implements KeyListener
{
private static final long serialVersionUID = 1L;
private static boolean keyboadrRightPressed = false;
public void init()
{
addKeyListener(this);
}
public void keyPressed(KeyEvent e)
{
int keyCode = e.getKeyCode();
if(keyCode == KeyEvent.VK_RIGHT)
{
keyboadrRightPressed = true;
}
else
{
keyboadrRightPressed = false;
}
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
}
public void paint(Graphics g)
{
g.fillOval(20,20,20,20);
g.drawString("String :"+keyboadrRightPressed,20,30);
}
}
而且我也必須理解它是如何工作的。我不明白爲什麼我的動作聽衆不會工作,我需要一個
while(true)
or Thread?
我這樣做,我實際上看到它在開始時有一點點暫停,球移動1個像素,等待0.5秒,直到連續移動,我是否應該使用線程來解決我的問題? – Master345 2012-01-16 17:48:54
那裏的停頓是因爲鍵盤事件的工作方式。當你考慮在文本編輯器中輸入內容時,如果你按住'a'鍵,它會輸入一個a,暫停一會兒,然後開始添加一堆a。所以是的,我會使用一個線程,你可以執行一致的時間間隔,所以你不會有那麼小的滯後。您還需要將repaint()函數調用移動到實際移動球的線程中,以便在移動球時重繪,而不是在檢測到按鍵時重繪。 – aoi222 2012-01-16 17:55:07
好的謝謝,如果我有更多的問題,我會問你 – Master345 2012-01-16 17:56:47