3
我有這樣的代碼:的KeyListener沒有達到我的switch語句
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JApplet;
public class applet extends JApplet implements KeyListener, MouseListener{
int a = 0;
int b = 0;
public void init(){
setSize(500,500);
addKeyListener(this);
addMouseListener(this);
}
public void paint(Graphics g){
g.setColor(Color.BLUE);
g.fillRect(a, b, 400, 400);
}
@Override
public void keyPressed(KeyEvent e) {
System.out.println("Hello!")
switch(e.getKeyCode()){
case KeyEvent.VK_DOWN: a -= 5;
break;
case KeyEvent.VK_UP: a += 5;
break;
case KeyEvent.VK_RIGHT: b += 5;
break;
case KeyEvent.VK_LEFT: b -= 5;
break;
}
repaint();
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
}
,它甚至沒有達到switch語句,如可以通過我調試的println代碼可以看出。爲什麼會發生這種情況,我該如何解決這個問題?請不要討厭這是否太寬泛,因爲我是一個完整的noob在這個問題上
http://stackoverflow.com/questions/13595208/applet-keylistener-not-working?rq=1 –
也1-避免重寫'頂層容器paint',而是使用類似於'JPanel'並覆蓋它的'paintComponent'方法並將其添加到小程序中並且2-確保您調用'super.paintXxx' – MadProgrammer
請參見[Motion Using the Keyboard](http://tips4java.wordpress.com/2013/06/09/motion-using-the-keyboard /)來解決使用KeyListener的問題以及使用Key Bindings的示例解決方案。 – camickr