zoukankan      html  css  js  c++  java
  • 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();

  • 相关阅读:
    git push出现unpack failed: error Missing tree错误的解决方法
    Android N 分屏
    adb 查看最上层activity名字
    Ubuntu 切换JDK 版本
    Android的开机流程
    HTTP 协议中GET和POST到底有哪些区别(转)
    github爬虫100项目
    web攻击之xss(一)
    Kali-Dos洪水攻击之Hping3
    zipCrack-v1.1 工具介绍
  • 原文地址:https://www.cnblogs.com/singular/p/3960275.html
Copyright © 2011-2022 走看看