「已注销」 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 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog