它甚至不会将键打印到命令提示符。提前谢谢。
这是keylistener的类
public static class KeyWatch extends KeyAdapter implements KeyListener
{
int x;
int y;
public KeyWatch(int x, int y)
{
x=this.x;
y=this.y;
}
public void keyPressed(KeyEvent e)
{
int keyCode = e.getKeyCode();
if(keyCode==KeyEvent.VK_UP)
{
System.out.println("up");
y=y+20;
}
if(keyCode==KeyEvent.VK_DOWN)
{
System.out.println("Down");
y=y-20;
}
if(keyCode==KeyEvent.VK_RIGHT)
{
System.out.println("Right");
x=x+20;
}
if(keyCode==KeyEvent.VK_LEFT)
{
System.out.println("Left");
x=x-20;
}
}
public void keyTyped(KeyEvent e){}
public void keyReleased(KeyEvent e){}
}
这里的窗口中的调用脱离了上下文
window.setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
KeyWatch watcher = new KeyWatch(x, y);
playerlabel = new JLabel(player);
playerlabel.addKeyListener(watcher);
playerlabel.setLocation(x, y);
无论如何,重点是将Jlabel移动到窗口周围。
感谢任何帮助。
答案 0 :(得分:0)
您需要让标签获得焦点:
playerLabel.requestFocus();
添加密钥监听器后调用此标签,标签已添加到视图层次结构中,并且变为可见。