Hi, ich habe einen Frame mit KeyListener, dass Problem ist, dass die Methode des Keylisteners nie ausgeführt wird, egal welche Taste ich drücke:
GameFrame.java:
GameFrame.java:
Java:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JProgressBar;
public class GameFrame implements ActionListener, KeyListener{
...
private static JFrame frame = new JFrame();
...
public GameFrame(){
...
frame.addKeyListener(this);
...
}
...
@Override
public void keyPressed(KeyEvent kevt) {
System.out.println("an key was pressed");
if(kevt.getKeyCode()==KeyEvent.VK_UP)
gp.up = true;
if(kevt.getKeyCode()==KeyEvent.VK_DOWN)
gp.down = true;
if(kevt.getKeyCode()==KeyEvent.VK_RIGHT)
gp.right = true;
if(kevt.getKeyCode()==KeyEvent.VK_LEFT)
gp.left = true;
if(kevt.getKeyCode()==KeyEvent.VK_ESCAPE)
System.out.println("ESCAPE gedrückt!");
GameFrame.setFrameType(0);
}
@Override
public void keyReleased(KeyEvent kevt) {
System.out.println("Released");
if(kevt.getKeyCode()==KeyEvent.VK_UP)
gp.up = false;
if(kevt.getKeyCode()==KeyEvent.VK_DOWN)
gp.down = false;
if(kevt.getKeyCode()==KeyEvent.VK_RIGHT)
gp.right = false;
if(kevt.getKeyCode()==KeyEvent.VK_LEFT)
gp.left = false;
if(kevt.getKeyCode()==KeyEvent.VK_ESCAPE){
if(gp.isStarted())
gp.setStarted(false);
else
System.exit(0);
}
}
@Override
public void keyTyped(KeyEvent kevt) {
// TODO Auto-generated method stub
System.out.println("getippt");
}
...