「已注销」 2014-10-04 10:35 采纳率: 0%
浏览 2818

在frame中添加两个panel后影响到第一个panel的事件监听

自己写的一个贪食蛇游戏,游戏已经用gamePanel 实现 按键事件 监听器 正常运行,但是在frame上添加optionalPanel后 有不能操控贪食蛇了!!!求解

public static void main(String args[])
{
Snake snake=new Snake();
Food food=new Food();
Ground ground=new Ground();

    GamePanel gamePanel=new GamePanel();

    Controller con=new Controller(snake, food, ground, gamePanel);


    JFrame frame=new JFrame();
    OptionalPanel pp=new OptionalPanel();
    frame.setLayout(new GridLayout(1, 2));
    frame.add(gamePanel);
      ***frame.add(pp);//添加这个后可以正常显示 但不可以操控了!!!!!!!!!***  


    gamePanel.addKeyListener(con);
    frame.addKeyListener(con);
    snake.addListener(con);

    //frame.setSize(gamePanel.getSize().width+25, gamePanel.getSize().height+35);
    gamePanel.setSize(Global.WIDTH*Global.CELL_SIZE,Global.HEIGHT*Global.CELL_SIZE);
    frame.setSize(Global.WIDTH*Global.CELL_SIZE*2,Global.HEIGHT*Global.CELL_SIZE+35);

    frame.setVisible(true);

    frame.setLocationRelativeTo(null);

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    con.newGame();

}

public class OptionalPanel extends JPanel{

/**
 * 
 */
private static final long serialVersionUID = 1L;
JButton b1=new JButton();
JButton b2=new JButton();
JButton b3=new JButton();

JPanel p=new JPanel();

public OptionalPanel() {
    // TODO Auto-generated constructor stub
    p.add(b1);
    p.add(b2);
    p.add(b3);

    add(p);
}

}

  • 写回答

1条回答

  • qq_30411631 2016-01-28 07:30
    关注

    我也有同样的问题,想知道你的问题解决了吗?求指导!

    评论

报告相同问题?

悬赏问题

  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的