У меня есть этот код:KeyListener не доходя до моего переключателя заявления
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
}
}
и даже не доходя заявление переключателя, как можно видеть мою отладки Println коды. Почему это происходит, и что я могу сделать, чтобы это исправить? Пожалуйста, не ненавидите, если это слишком широкое, так как я полный noob по этой теме.
http://stackoverflow.com/questions/13595208/applet-keylistener-not-working?rq=1 –
также 1- Избегайте переопределение 'paint' контейнеров верхнего уровня, вместо того, чтобы использовать что-то вроде 'JPanel' и переопределить его метод' paintComponent' и добавить это к апплету и 2- Убедитесь, что вы вызываете 'super.paintXxx' – MadProgrammer
См. [Движение с помощью клавиатуры] (http://tips4java.wordpress.com/2013/06/09/motion-using-the-keyboard /) для проблем с использованием KeyListener и примерного решения с использованием клавишных привязок. – camickr