java panel 监听不到键盘事件_JPanel添加键盘监听事件

因为在自己的游戏需求中谢了要用键盘控制飞机的移动,所以用到键盘监听事件,但是使用了JPanel之后添加了键盘监听事件,按相应的方向键飞机并没有反应。但是如果是为JFrame的内容面板加则会有反应。

为了使得能在JPanel里头使用键盘事件解决方法如下:

1、在JPanel里头添加键盘监听

this.addKeyListener(new KeyAdapter(){

public void keyPressed(KeyEvent e) {

switch(e.getKeyCode()){

case KeyEvent.VK_UP:

player.move("UP");

break;

case KeyEvent.VK_DOWN:

player.move("DOWN");

break;

case KeyEvent.VK_RIGHT:

player.move("RIGHT");

break;

case KeyEvent.VK_LEFT:

player.move("LEFT");

break;

case KeyEvent.VK_Z: //Z建使用导弹,炸毁所有敌机

player.useMissile(enemyPlanes, bombs);

break;

}

}

});

2、在主函数里头将所要添加的JPnael设置为静态成员

private static BackgroundPanel panelBackground;

3、在JFrame构造函数中初始化静态成员并添加到内容面板,并且在主函数中使JPanel获得焦点

Frame的构造函数中:

panelBackground = new BackgroundPanel();

panelBackground.setBounds(0,0,386,385);

contentPane.add(panelBackground);

主函数中:

GameFrame frame = new GameFrame();

frame.setVisible(true);

GameFrame.panelBackground.requestFocus();

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值