2 u013754679 u013754679 于 2014.10.04 18:35 提问

在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
qq_30411631   2016.01.28 15:30

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

Csdn user default icon
上传中...
上传图片
插入图片