Using Mouse Click to Generate Balls

久未见 提交于 2019-12-06 15:46:53

In BouncingBallsApp constructor do the following changes:

public BouncingBallsApp() {
    display = new Display(800,600);

    //instead of calling add balls directly, use a mouse listener 
    //addBalls();  
    display.addMouseListener(getListener());

    mainLoop();
    display.destroy();
}

Add getListener() method to BouncingBallsApp:

private MouseListener getListener() {

    return new MouseAdapter() {
        @Override
        public void mousePressed(MouseEvent e) {
            addBalls(1); //call add balls when mouse pressed 
        }
    };
}

And slightly change addBalls() so that numberOfBalls becomes an argument:

private void addBalls(int numberOfBalls) {
   //int numberOfBalls = 20;
   .....

Add mouse listener support to Display:

//add mouse listener to canvas 
void addMouseListener(MouseListener listener) {

    canvas.addMouseListener(listener);  //requiers to make canvas a field  
}

All done.
To generate balls, simply click the canvas.
(A link to the modified code)


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!